XPath:根据后代节点类型

时间:2015-08-04 18:07:23

标签: xml xpath descendant

我需要返回字符串“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”节点......

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

1 个答案:

答案 0 :(得分:1)

后代计算节点的所有子节点。如果你想要B节点链,那就这样写吧

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