好的我正在尝试打印Ancient_wonders / wonder下的每个元素,这些元素与name相同但是当我这样做时:
<xsl:for-each select="ancient_wonders/wonder">
<xsl:value-of select="./name"/>
</xsl:for-each>
它只打印第一个等于name的元素。这是我的xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="02-03.xsl"?>
<ancient_wonders>
<wonder>
<location>
Rhodes, Greece
</location>
<name language="English">
Christ of Brasil
</name>
<name language="English">
Colossus of Rhodes
</name>
<name language="Chinese">
Great Wall of China
</name>
</wonder>
有人可以向我解释如何做到这一点。
答案 0 :(得分:0)
您的XML中只有一个奇迹元素,但有多个名称元素。 xsl:for-each 循环遍历 wonder 元素,因此只会迭代一次。如果要输出名称元素,请迭代这些....
<xsl:for-each select="ancient_wonders/wonder/name">
<xsl:value-of select="."/>
</xsl:for-each>
或许,如果你确实有多个奇迹,你可以使用嵌套的 xsl:for-each
<xsl:for-each select="ancient_wonders/wonder">
Location: <xsl:value-of select="location" />
<xsl:for-each select="name">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:for-each>