我的XML如下:
<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>
我需要从标签id =“12”中提取CC BY-SA。如何使用select命令的值来标记标记id =“12”。 这就是我试图做的,但它什么都没有提取:
<xsl:value-of select="/tags/tag[@id=12]/name/de-DE"/>
答案 0 :(得分:1)
使用您提供的XML作为示例,您尝试的是正确的。您可以使用任何XSLT在线工具进行检查。
但是我觉得你提供的例子并不完全是你正在努力和尝试的。例如,我想你的id可能不同(因为当符合XML ID数据类型时,简单数字不能作为id有效,它们必须是XML名称。)
更像是:
<tag id="id12">
<name>
<de-DE>CC BY-SA</de-DE>
</name>
</tag>
并且在这种情况下,id不能再转换为数字12,并且只能通过字符串测试它是否相等,这是&#39; id12&#39;。
所以正确的表达方式是:
<xsl:value-of select="/tags/tag[@id='id12']/name/de-DE"/>