使用XSLT迭代标记
我有一个如下所示的xml结构使用XSLT迭代标记,xslt,Xslt,我有一个如下所示的xml结构 名字01 名称02 姓名03 名字04 如何迭代NameList的子标记并使用XSLT的xsl:for-each显示它们? 我的输出应该是 name01 name02 名称03 名字04 谢谢我不完全确定你想要什么,但也许是这样 <xsl:template match="/"> <xsl:for-each select="NameList"> <xsl:value-of select="."/>
名字01
名称02
姓名03
名字04
如何迭代NameList的子标记并使用XSLT的xsl:for-each显示它们?
我的输出应该是
name01name02
名称03
名字04
谢谢我不完全确定你想要什么,但也许是这样
<xsl:template match="/">
<xsl:for-each select="NameList">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
实际上没有必要为每个使用xsl:for。您可以通过模板匹配来实现这一点,模板匹配通常是XSLT中最受欢迎的方法 您需要一个模板来匹配名称列表元素,您可以在其中输出所需的任何“包含”元素,然后开始选择子元素
<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>
如果您确实想在格式化或输出元素方面获得更多帮助,您真的需要在问题中提到这一点。谢谢 Thx。我得到了结果。
<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>