0

我有一个如下的 xml 结构,

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

如何遍历 NameList 的子标签并使用 XSLT 的 xsl:for-each 显示它们?我的输出应该是

名称01 名称02 名称
03
名称
04

谢谢

4

2 回答 2

1

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

<xsl:template match="/">

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

它推出

    name01 name02 name03 name04 
于 2013-07-31T09:55:20.373 回答
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>

如果您确实需要更多有关格式化或输出元素的帮助,那么您确实需要在问题中提到这一点。谢谢!

于 2013-07-31T12:45:02.543 回答