此XPath表達式:
count(
ExprForYourNode//*
[not(count(ancestor::*)
>
count(ExprForYourNode/ancestor::*) + 2
)
]
)
選擇所有後代或自元件關閉由表達式ExprForYourNode
具有2最大深度選擇的元素(零基)
如果你wan噸選擇所有後代或自節點(元素,文本節點,註釋節點和處理指令節點)使用:
count(
ExprForYourNode//node()
[not(count(ancestor::*)
>
count(ExprForYourNode/ancestor::*) + 2
)
]
)
例如與此文檔:
<t>
<a>
<b>
<c>
<d/>
</c>
</b>
</a>
</t>
這個表達式:
count(
/*/a//*
[not(count(ancestor::*)
>
count(/*/a/ancestor::*) + 2
)
]
)
產生:
2
這是與相對深度的a
後代到a
2或更少的元件的數目(b
和c
,但不是d
)。
類似地,本表達的評價:
count(
/*/a//node()
[not(count(ancestor::*)
>
count(/*/a/ancestor::*) + 2
)
]
)
產生:
6
即元素的數量(如前)加的數量(空白 - 僅)文本節點深度最多2個元素a
提供樣本e XML。 –
也許這是一個糟糕的XPath查詢,但我希望它不正確:count(// fstructure/node())+ count(// fstructure/node()/ node())+ count(// fsctruture/node ()/ node()/ node())+ 1,假設我想從元素節點「fstructure」開始計數3個級別。 – Johannes
好吧,它似乎是正確的(儘管我的拼寫錯誤),但也許不是最好的方式來做到這一點。 – Johannes