2013-07-31 73 views
0

我有一个XML结构如下图所示,迭代标签使用XSLT

<NameList> <Name>name01</Name> <Name>name02</Name> <Name>name03</Name> <Name>name04</Name> </NameList>

如何遍历NameList中的子标签,并使用XSLT的XSL显示出来:对,每个? 我的输出中就应该像

name01
name02
姓名03,2
姓名04,2

感谢

回答

0

我不完全地确定你想要什么,但也许这样吗?

<xsl:template match="/"> 

    <xsl:for-each select="NameList"> 
     <xsl:value-of select="."/>   
    </xsl:for-each> 
</xsl:template> 

它提出了

name01 name02 name03 name04 
+0

Thx。我得到了结果。 – Radnerus

1

有没有真正需要使用的xsl:for-每个。您可以通过模板匹配来实现这一点,这通常是XSLT中最受欢迎的方法。

您将需要一个模板,你NameList中元素,在这里您可以输出任何“包含”你想要的元素匹配,然后开始选择的子元素

<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> 

试试这个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> 

如果你确实想与格式或输出元素的任何更多的帮助,你真的需要在你的问题已经提到了这一点。谢谢!