Как вы выбираете ребенка или себя (дети + я) - PullRequest
7 голосов
/ 30 ноября 2010

В XSL 1.0, потомок-или-сам выберет ВСЕХ потомков и текущий узел. Что, если вы хотите выбрать только непосредственные дочерние элементы и текущий узел (т.е. дочерний или собственный)?

Возможно ли это с XPATH?

1 Ответ

11 голосов
/ 30 ноября 2010

В XPath 1.0 или более поздней версии используйте :

SomeExpression | SomeExpresion/node()

В XPath 2.0 или более поздней версии используйте :

SomeExpression/(self::node()|node())

Неправильный ответ будет :

SomeExpression | SomeExpresion/*

, поскольку он выбирает только те дочерние элементы SomeExpression, которые являются элементами, тогда как SomeExpression может иметь и другие дочерние элементы - как текстовые узлы, узлы комментариев, узлы инструкций обработки.

Также неверно :

./SomeExpression | ./*/SomeExpression

Это не выбирает непосредственных потомков ./SomeExpression и не выбирает непосредственных потомков ./*/SomeExpression.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...