因此,我不知道如何真正地說出這個問題。我想要一個節點列表,只選擇一個節點,而不是嵌套節點。例如:抓取不是其他節點的後代的節點,不包括當前上下文
<root>
<my_element>
<my_element>
Some Text
</my_element>
</my_element>
</root>
我知道我可以使用此XPath已經做了一些我想要的東西:
Context:/
xPath: descendant::my_element[not(ancestor::my_element)]
這將返回此結果集:
<root>
[<my_element>]
<my_element>
Some Text
</my_element>
[</my_element>]
</root>
這就是預期我想要的行爲。但我希望能夠改變的背景下:
/my_element
而得到這樣的結果集:
<root>
<my_element>
[<my_element>]
Some Text
[</my_element>]
</my_element>
</root>
我已經盡我所能在看着XPATH文件,我還沒有想出與很多東西。在這裏冒充某人可以提供一些見解?
謝謝!
編輯 - 我希望能夠選擇一個my_element後裔這是不my_element不包括上下文節點的祖先。
再次編輯 - 爲了進一步解釋。
我想有一個XPath查詢選擇的my_element
節點,只要節點不是my_element
一個孩子。但是,如果xpath上下文設置爲my_element
節點,那麼我不希望該節點在表達式中計數。因此xpath將與下一個my_element
節點匹配,即使它實際上是my_element
的子節點。再次
- 編輯 -
下面是更多的例子。
<root>
<a>
<a>
<b>
<a>
Hello!
</a>
</b>
<a>
<b>
Hello Again
<a>
Sub
</a>
</b>
</a>
</a>
</a>
</root>
Context: /root/
Desire: Want to grab all A nodes, so long as they aren't a descendant of A
Result:
<root> == Context
[<a>]
<a>
<b>
<a>
Hello!
</a>
</b>
<a>
<b>
Hello Again
<a>
Sub
</a>
</b>
</a>
</a>
[</a>]
</root>
Context: /root/a/
Desire: Want to grab all A nodes, so long as they aren't a descendant of A, not including the context /root/a/
Result:
<root>
<a> == Context
[<a>]
<b>
<a>
Hello!
</a>
</b>
<a>
<b>
Hello Again
<a>
Sub
</a>
</b>
</a>
[</a>]
</a>
</root>
Context: /root/a/a/
Desire: Want to grab all A nodes, so long as they aren't a descendant of A, not including the context /root/a/a/
Result:
<root>
<a>
<a> == Context
<b>
[<a>]
Hello!
[</a>]
</b>
[<a>]
<b>
Hello Again
<a>
Sub
</a>
</b>
[</a>]
</a>
</a>
</root>
Context: /root/a/a/a/
Desire: Want to grab all A nodes, so long as they aren't a descendant of A, not including the context /root/a/a/a/
Result:
<root>
<a>
<a>
<b>
<a>
Hello!
</a>
</b>
<a> == Context
<b>
Hello Again
[<a>]
Sub
[</a>]
</b>
</a>
</a>
</a>
</root>
我希望這能讓我的慾望更清晰。謝謝大家誰正在嘗試!
@凱爾:那不就是'my_element'孩子嗎?除非你想要一個'my_element'後代,它沒有'my_element'祖先,排除了上下文節點及其祖先。 – 2011-04-10 21:55:10
你的後者是正確的。我希望能夠選擇my_element後代,它不是my_element的祖先,不包括上下文節點。 – Kyle 2011-04-10 22:41:42
@凱爾:我認爲你不能在XPath 1.0中因爲需要引用上下文節點。 – 2011-04-10 22:56:32