我有一个如下的 xml 结构,
<NameList>
<Name>name01</Name>
<Name>name02</Name>
<Name>name03</Name>
<Name>name04</Name>
</NameList>
如何遍历 NameList 的子标签并使用 XSLT 的 xsl:for-each 显示它们?我的输出应该是
名称01 名称02 名称
03
名称
04
谢谢
我有一个如下的 xml 结构,
<NameList>
<Name>name01</Name>
<Name>name02</Name>
<Name>name03</Name>
<Name>name04</Name>
</NameList>
如何遍历 NameList 的子标签并使用 XSLT 的 xsl:for-each 显示它们?我的输出应该是
名称01 名称02 名称
03
名称
04
谢谢
我不完全确定你想要什么,但也许像这样?
<xsl:template match="/">
<xsl:for-each select="NameList">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
它推出
name01 name02 name03 name04
没有真正需要使用xsl:for-each。您可以使用模板匹配来做到这一点,这通常是 XSLT 中最受欢迎的方法。
您需要一个模板来匹配您的NameList元素,您可以在其中输出任何您想要的“包含”元素,然后开始选择子元素
<xsl:template match="NameList">
<table>
<xsl:apply-templates select="Name" />
</table>
</xsl:template>
然后你有一个模板实际上匹配Name元素,你可以在其中以任何你想要的格式输出它。例如
<xsl:template match="Name">
<tr>
<td>
<xsl:value-of select="." />
</td>
</tr>
</xsl:template>
初学者可以试试这个 XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="NameList">
<table>
<xsl:apply-templates select="Name" />
</table>
</xsl:template>
<xsl:template match="Name">
<tr>
<td>
<xsl:value-of select="." />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
如果您确实需要更多有关格式化或输出元素的帮助,那么您确实需要在问题中提到这一点。谢谢!