Внуки стихии (XPath) - PullRequest
       4

Внуки стихии (XPath)

3 голосов
/ 23 марта 2010

Я ищу выражение XPath, которое дает мне всех внуков элемента.

Это правильно: ребенок / ребенок / *?

Ответы [ 2 ]

3 голосов
/ 23 марта 2010

Это правильно: ребенок / ребенок / *?

Нет,

child

выбирает все дочерние элементы текущего узла, имя которого child.

child/child

выбирает все элементы с именем child, которые являются дочерними элементами любого элемента с именем child, который является дочерним элементом текущего узла. Итак, вышеприведенное выражение выбирает всех внуков текущего узла, которые имеют имя child и чьи родители также называются child. Это наиболее близко к "внукам элемента".

Выражение XPath, о котором вы спрашиваете:

child/child/*

выбирает все элементы (независимо от имени), которые являются дочерними элементами элементов с именем child, которые являются дочерними элементами элементов с именем child, которые являются дочерними элементами текущего узла. Это некоторые из внуков текущего узла (дети внуков).

Чтобы полностью ответить на вопрос, следующее выражение выбирает всех внуков текущего узла :

*/node()

Это все узлы, которые являются потомками всех элементов, которые являются потомками текущего узла.

Обратите внимание на следующее :

  1. Только элементы и узел документа могут иметь дочерние элементы.

  2. Любой узел (за исключением узла документа), не только узел элемента, может быть и обычно является дочерним по отношению к какому-либо другому узлу. Следовательно, могут быть внуки, которые не являются элементами, такие как текстовые узлы, узлы комментариев и узлы инструкций по обработке. Атрибуты и узлы пространства имен технически не являются дочерними.

3 голосов
/ 23 марта 2010

*/* дает всем внукам см http://www.caucho.com/resin-3.1/doc/xpath.xtp

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