我对术语并不过分熟悉,所以我甚至不确定问题的标题是否准确,但我会尽力解释。
我有以下XML示例。
<countries>
<country name="Afghanistan" population="22664136" area="647500">
<language percentage="11">Turkic</language>
<language percentage="35">Pashtu</language>
<language percentage="50">Afghan Persian</language>
</country>
</countries>
我将XPath用于语言节点(/ countries / country /,然后是for-each for languages)。
<language percentage="11">Turkic</language>
使用XSLT如何在上面的示例&#34; Turkic&#34;中输出值。我无法想出另一种表达问题的方法,但它就像我在节点上并且不知道获取此节点值的语法。
提前致谢
答案 0 :(得分:11)
xsl:value-of
元素和current()
函数应该可以解决问题:
<xsl:value-of select="current()"/>
我不知道模板的确切结构,但是例如下面的一个输出语言名称:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/countries">
<xsl:for-each select="country">
<xsl:value-of select="current()"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:0)
我知道这是旧帖子,但是如果有人仍在寻找答案或对原始问题稍作扩展。
如何根据元素<language>
中的属性选择重复元素e.g. percentage with value '11'
的特定元素值。如果您在获取价值方面遇到了挑战(如问题中所述),即<language percentage="11">Turkic</language>
获取标签语言
其百分比值为11
然后尝试以下代码:
<xsl:template match="/">
<xsl:for-each select="/countries/country">
<language>
<xsl:value-of select="./language[@percentage='11']"/>
<language>
</xsl:for-each>
</xsl:template>
输出:
<language>Turkic<language>