xsl foreach循环不能在xml上运行

won*_*nea 0 .net xml xslt

我一直在尝试使用XSL迭代XML文件,但是由于唯一的第一语言被识别,我遇到了重大麻烦.救命!

<?xml version="1.0"?>
<languages count="1">
  <language>English (UK)</language>
  <language>Spanish</language>
  <language>Arabic</language>
</languages>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <html>
      <body>
        <table border="1">
            <tr>
          <xsl:for-each select="languages">
              <th>
                 <xsl:value-of select="language"/>
              </th>
          </xsl:for-each>
            </tr>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

Ode*_*ded 8

languages根目录下只有一个节点.

您应该使用模板而不是for-each尽可能:

<xsl:template match="language">
    <th>
       <xsl:value-of select="."/>
    </th>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

并在主模板中调用它:

<tr>
    <xsl:apply-templates select="languages/language"/>
</tr>
Run Code Online (Sandbox Code Playgroud)