我有这个xml文件:
<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type="text/css" href="positions-zaehlweise.css"?>
<ul>
<li>A</li>
<li>
<ol>
<li>B</li>
<li>C</li>
</ol>
</li>
<li>D</li>
</ul>
和这个xpath查询:
/child::ul/descendant-or-self::*/child::li[position()=1]
我从此查询中获得:A
和B
。
但我不知道怎么做到这一点。使用/descendant-or-self
时self
为A
,对吗?然后它下降到列表并采取所有。那么它如何比较,我的愿景是:
self descendant
----------------------------
A,D B, C
我是对的吗?有人可以请你解释一下这是如何运作的吗?非常感谢
答案 0 :(得分:2)
/child::ul
会返回ul
。
descendant-or-self::*
返回自我(ul
再次)及其所有后代(li-A
,li-ol
,ol
,li-B
,{{1 },li-C
)。
li-D
移动到child::li
的前一个元素的子元素,这意味着li
,li-A
和li-ol
代表li-D
,{ {1}}锂B ul
里-C and
ol`。
and
仅选择第一个这样的孩子,即for
和[position()=1]
。