如何获取其他子节点元素的值

时间:2013-10-01 02:21:33

标签: xml xslt xslt-1.0 xslt-2.0

我正在尝试从当前节点获取其他子节点元素的值<abc-value>abc</abc-value>

示例:

<root>
  <child1>
     <abc-value>abc</abc-value>
  </child>
  <child2>
     <attribute name=def>def</def-value>
  </child2>
</root>

XSL:

<xsl:template name="child2" match="attribute">
   child1 value is: <xsl:value-of select="../abc-value"/>
   child2 value is: <xsl:value-of select="current()"/>
</xsl:template> 

我想做的就是,从child2模板匹配,我调用了child1元素<abc-value>abc</abc-value>的值。

被淘汰出局:

Child1值为:abc

Child2值为:def

1 个答案:

答案 0 :(得分:3)

<xsl:template name="child2" match="attribute">
   child1 value is: <xsl:value-of select="../../child1/abc-value" />
   child2 value is: <xsl:value-of select="." />
</xsl:template> 

更新:根据您的问题编辑:

  • 模板现在与<attribute>元素匹配。
  • 由于模板的当前节点(<attribute>元素)比以前更深,因此child1值的select表达式将更改为使用其他../