我有像下面这样的xml结构,
<NameList>
<Name>name01</Name>
<Name>name02</Name>
<Name>name03</Name>
<Name>name04</Name>
</NameList>
如何迭代NameList的子标签并使用XSLT的xsl:for-each显示它们? 我的输出应该是
name01
name02
姓名03,2
姓名04,2
谢谢
答案 0 :(得分:1)
我不完全确定你想要什么,但也许是这样的?
<xsl:template match="/">
<xsl:for-each select="NameList">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
它推出
name01 name02 name03 name04
答案 1 :(得分:1)
没有必要使用 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>
如果您确实需要格式化或输出元素的更多帮助,您真的需要在您的问题中提到这一点。谢谢!