如何将元素值与兄弟节点的子节点中的属性值进行匹配

时间:2011-03-16 19:31:38

标签: xslt

给定一个包含许多元素的XML文档:

<column>
  <question>
  ...
  </question>
  <question>
    <description>Colour</description>
    <choices>
      <choice value="">[Select colour]</choice>
      <choice value="id01">Red</choice>
      <choice value="id02">Green</choice>
      <choice value="id03">Blue</choice>
      <choice value="id04">Yellow</choice>
    </choices>
    <chosen>id02</chosen>
  </question>
</column>

...和(部分)XSL转换,如下所示:

<xsl:for-each select="column/question">
      <xsl:value-of select="description"/>
      <xsl:value-of select="chosen"/>
      <xsl:value-of select="choices/choice[@value='id02']"/>    
</xsl:for-each>

...如果不对此进行硬编码,返回“绿色”值的最佳或最简单方法是什么?我是新来的;它一定很容易,但我无法弄清楚如何。 XSL中的最后一个“选择值”有一个硬编码的属性过滤器,但我真正想要的是将它与我​​的doc中每个值的值进行比较,比如“choice / choice [@ value = /问题/选择]“......但随后工作: - )

再一次,我确信这很容易,但谷歌搜索的时间并没有让我到处都是。感谢您的帮助和耐心。

1 个答案:

答案 0 :(得分:2)

像...一样的东西。

choices/choice[@value=../../chosen]