Итак, я понятия не имею, как на самом деле сформулировать этот вопрос. Я хочу иметь список узлов и выбирать только один узел, но не вложенный узел. Например:
<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
, за исключением узла контекста и его предка. - person   schedule 11.04.2011./descendant::my_element[1]
, которое выбирает первого потомка (тогда у него не будет предкаmy_element
), но оно не будет выбирать остальную частьmy_element
в другой дочерней ветке узла контекста. - person   schedule 11.04.2011