如何在XSLT中选择select的值中的元素的某个参数?

时间:2017-11-24 12:26:37

标签: xml xslt

我的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"/>  

1 个答案:

答案 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"/>