Xml 我如何在xslt中使用每一个
好的,我正在尝试打印“古代奇迹/奇迹”下的每个元素,这些元素等于名称,但当我这样做时:Xml 我如何在xslt中使用每一个,xml,xslt,Xml,Xslt,好的,我正在尝试打印“古代奇迹/奇迹”下的每个元素,这些元素等于名称,但当我这样做时: <xsl:for-each select="ancient_wonders/wonder"> <xsl:value-of select="./name"/> </xsl:for-each> 它只打印等于name的第一个元素。以下是我的xml: <?xml version="1.0"?> <?xml-stylesheet type="te
<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>
罗德岛,希腊
巴西基督
罗德斯巨人
中国长城
有人能告诉我怎么做吗。您的XML中只有一个wonder元素,但是有多个name元素。您xsl:for-each在wonder元素上循环,因此只迭代一次。如果要输出name元素,请迭代这些
<xsl:for-each select="ancient_wonders/wonder/name">
<xsl:value-of select="."/>
</xsl:for-each>
或者,如果您确实有多个wonder,例如,您可以为每个
<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>
地点:
难怪,您只有一个wonder
元素。您正在迭代单个wonder并返回其中的第一个name
元素。坦白地说,我发现XSLT是一种声明性语言,对于每一种,我都有反直觉的感觉。@Tom感谢你的评论帮助我理解了一个lotok。我认为每项工作都有不同的方法。谢谢你的回答。但现在,我试图用与英语相同的语言打印每个名字,但这行不通。这就是我所做的: