XPath:根据后代节点类型的深度选择节点



我需要返回字符串"A1"或字符串"A2"取决于"B"节点在其包含节点下的最大深度:

<xmlDoc>
 <A>A1
  <B>
   <B>
    <B>
    </B>
   </B>
  </B>
  <B>
  </B>
</A>
<A>A2
 <B>
  <B>
  </B>
 </B>
  <B>
   <B>
   </B>
  </B>
 </A>
</xmlDoc>

descendant轴似乎不适合确定B节点的"深度"(例如:/xmlDoc/A[count(descendant::B)>2])。包含字符串"A1"的"A"节点的最大"B"节点深度为3,但似乎有4个"后代"B"节点…

如何根据"B"节点在第一个"A"节点中的"3深度"出现来构造XPath表达式以返回字符串"A1"?

Descendant计算该节点的所有子节点。如果你想要一个B节点链,这样写

/xmlDoc/A[B[B[B]]]

相关内容

最新更新