0

好的,我正在尝试打印 Ancient_wonders/wonder 下与 name 相等的每个元素,但是当我这样做时:

 <xsl:for-each select="ancient_wonders/wonder">
     <xsl:value-of select="./name"/>
 </xsl:for-each>

它只打印等于名称的第一个元素。这是我的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>

有人可以向我解释如何做到这一点。

4

1 回答 1

0

您的 XML 中只有一个wonder元素,但有多个name元素。您xsl:for-each正在循环遍历奇妙的元素,因此只会迭代一次。如果要输出名称元素,请遍历这些...。

<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>
于 2013-10-14T18:46:30.440 回答