Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 查找具有特定元素的前一个同级_Xslt - Fatal编程技术网

Xslt 查找具有特定元素的前一个同级

Xslt 查找具有特定元素的前一个同级,xslt,Xslt,给定以下XML: <Root> <NodeA> <ChildNodeA/> <ChildNodeB/> </NodeA> <NodeB> <ChildNodeB/> </NodeB> <NodeC> </NodeC> </Root> 如何找到包含特定元素的特定节点的前一个sibling 也就是说,如果我在“Nod

给定以下XML:

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

如何找到包含特定元素的特定节点的前一个sibling

也就是说,如果我在“NodeC”,我如何找到“ChildNodeA”的第一个兄弟姐妹,在这个例子中是“NodeA”


提前感谢。

找到前面第一个包含子元素的同级元素非常简单,而且确实与您描述它的方式非常匹配

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

假设您位于NodeC,那么在您的情况下,这确实会返回您的NodeA

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