使用特定元素查找第一个Preceding Sibling

时间:2012-10-11 10:07:37

标签: xslt

给出以下XML:

<Root>
  <NodeA>
    <ChildNodeA/>
    <ChildNodeB/>
  </NodeA>
  <NodeB>
    <ChildNodeB/>
  </NodeB>
  <NodeC>
  </NodeC>
</Root>

如何找到包含特定元素的特定节点的第一个Preceding Siblilng。

即。如果我在“NodeC”,如何找到第一个带有“ChildNodeA”的兄弟姐妹,在这个例子中是“NodeA”?

提前致谢。

1 个答案:

答案 0 :(得分:4)

要找到包含子元素的第一个前面的兄弟元素是非常简单的,并且确实与您描述它的方式非常匹配....

<xsl:apply-templates select="preceding-sibling::*[ChildNodeA][1]" />

假设您已定位在 NodeC 上,这确实会在您的案例中返回 NodeA

<NodeA>
  <ChildNodeA></ChildNodeA>
  <ChildNodeB></ChildNodeB>
</NodeA>