给出以下XML:
<Root>
<NodeA>
<ChildNodeA/>
<ChildNodeB/>
</NodeA>
<NodeB>
<ChildNodeB/>
</NodeB>
<NodeC>
</NodeC>
</Root>
如何找到包含特定元素的特定节点的第一个Preceding Siblilng。
即。如果我在“NodeC”,如何找到第一个带有“ChildNodeA”的兄弟姐妹,在这个例子中是“NodeA”?
提前致谢。
答案 0 :(得分:4)
要找到包含子元素的第一个前面的兄弟元素是非常简单的,并且确实与您描述它的方式非常匹配....
<xsl:apply-templates select="preceding-sibling::*[ChildNodeA][1]" />
假设您已定位在 NodeC 上,这确实会在您的案例中返回 NodeA
<NodeA>
<ChildNodeA></ChildNodeA>
<ChildNodeB></ChildNodeB>
</NodeA>