Xml 如何在XSLT中的select值中处理元素的某个参数?
我的XML如下所示:Xml 如何在XSLT中的select值中处理元素的某个参数?,xml,xslt,Xml,Xslt,我的XML如下所示: <tags> <tag id="2"> <name> <de-DE>xxx</de-DE> </name> </tag> <tag id="5"> <name> <de-DE>ccc</de-DE> <
<tags>
<tag id="2">
<name>
<de-DE>xxx</de-DE>
</name>
</tag>
<tag id="5">
<name>
<de-DE>ccc</de-DE>
</name>
</tag>
<tag id="12">
<name>
<de-DE>CC BY-SA</de-DE>
</name>
</tag>
</tags>
xxx
ccc
CC BY-SA
我需要从标记id=“12”中提取CC BY-SA。如何使用select command值寻址标记id=“12”。
这就是我试图做的,但它没有提取任何内容:
<xsl:value-of select="/tags/tag[@id=12]/name/de-DE"/>
以您给出的XML为例,您尝试的是正确的。您可以使用任何XSLT在线工具进行检查 然而,我认为你给出的例子可能并不完全是你正在研究和尝试的。例如,我认为您的ID可能不同(当符合XML ID数据类型时,简单的数字不能作为ID,它们必须是XML名称) 更像是:
<tag id="id12">
<name>
<de-DE>CC BY-SA</de-DE>
</name>
</tag>
CC BY-SA
在这种情况下,id不能再转换为数字12,只能测试它是否与字符串“id12”相等
所以正确的表达应该是:
<xsl:value-of select="/tags/tag[@id='id12']/name/de-DE"/>
您也可以发布您的xslt吗?其他可能的“人们没有告诉我们的事情,因为他们没有意识到它的重要性”候选词包括(a)源文档中的名称空间,以及(b)xsl:value-of-expression的动态上下文。最好构造一个完整的可运行示例来演示问题。