gpt4 book ai didi

java - XSL 使用参数 for-each

转载 作者:行者123 更新时间:2023-11-29 08:32:22 25 4
gpt4 key购买 nike

我正在使用 XSL 样式表在 android 环境中将 xml 文档转换为 html。

<?xml version="1.0" encoding="UTF-8"?>
<list>
<project id="Proj02">
<observation id="Proj02_Obs001">

</observation>
</project>
<project id="Proj01">
<observation id="Proj01_Obs002">

</observation>
<observation id="Proj01_Obs001">

</observation>
</project>
</list>

对于我的 html 文件,我想遍历对特定项目的所有观察。为此,我为 project@id 传递了一个参数:

transformer.setParameter("projID", "Proj01")

使用xsl文件

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<xsl:param name="projID" />
<html>
<body>
<table>
<tr>
<th style="text-align:left">ID</th>

</tr>
<xsl:for-each select="list/project[@id=$projID]/observation">
<tr>
<td>
<xsl:value-of select="@id" />
</td>

</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

我没有得到任何结果。

我需要如何修改这一行?

<xsl:for-each select="list/project[@id=$projID]/observation">

感谢您的帮助!

最佳答案

如果将外部参数传递给样式表,xsl:param 语句需要是 xsl:stylesheet 的子语句

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">

<xsl:param name="projID" />

<xsl:template match="/">
<xsl:for-each select="list/project[@id=$projID]/observation">
<tr>
<td>
<xsl:value-of select="@id" />
</td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

该参数是全局参数,可以在整个样式表中使用。

关于java - XSL 使用参数 for-each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46806258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com