如何在xsl上使用其级别上的节点值来获取特定节点

时间:2015-12-19 06:01:01

标签: xslt

我有这种结构,当节点仍然在<Sibling>时,我需要使用<Child>的值来获取<GrandParent>的值。我已经尝试过这样的条件Parent/Child[text()='171']

<GrandParent>
<Parent>
 <Child>172</Child>
 <Sibling>172_sibling</Sibling>
 <Child1>172</Child1>
 <Sibling1>172_sibling</Sibling1>
<Parent>
<Parent>
 <Child>171</Child>
 <Sibling>171_sibling</Sibling>
 <Child1>171</Child1>
 <Sibling1>171_sibling</Sibling1>
<Parent>
<Parent>
 <Child>173</Child>
 <Sibling>173_sibling</Sibling>
 <Child1>173</Child1>
 <Sibling1>173_sibling</Sibling1>
<Parent>
</GrandParent>

1 个答案:

答案 0 :(得分:0)

  

我需要使用<Sibling>的值获取<Child>的值   节点仍然在<GrandParent>

GrandParent的上下文,以下说明:

<xsl:value-of select="Parent[Child=171]/Sibling"/>

将返回"171_sibling"

这里有一个隐含的假设,即只有一个Parent节点满足条件,并且它只有一个Sibling子节点。至少在XSLT 1.0中,xsl:value-of指令仅返回所选集合中第一个节点的值。