xpath                
            Пути расположения и оси
        
        
            
    Поиск…
замечания
 Путь местоположения XPath - это серия шагов местоположения, разделенных символом / : 
step1/step2/step3
  Шаг местоположения содержит ось , тест узла и необязательный список предикатов . Ось и проверка узла разделяются двумя символами двоеточия :: . Предикаты заключены в квадратные скобки: 
axis::nodeTest[predicate1][predicate2]
  Оценка пути местоположения начинается с набора узлов, содержащего контекстный узел, заданный контекстом выражения, или корневым узлом , если путь местоположения начинается с / . На каждом шаге каждый узел N в исходном наборе узлов заменяется набором узлов, которые 
- может быть достигнуто от N, следующего за данной осью ,
 - соответствует тесту узла и
 - соответствует всем предикатам .
 
Результатом выражения пути местоположения является конечный набор узлов, полученный после обработки всех шагов местоположения .
Перемещение дочерних элементов
 Переход от корневого узла к элементу потомка с использованием child оси: 
/child::html/child::body/child::div/child::span
  Поскольку child ось является осью по умолчанию, это может быть сокращено до: 
/html/body/div/span
        Обход всех потомков
 Точки descendant и descendant-or-self самца могут использоваться для нахождения всех элементов-потомков узла на любой глубине. Напротив, child ось пересекает только детей. 
/child::html/descendant::span
/child::html/descendant-or-self::*
  Двойная слэш // является ярлыком для /descendant-or-self::node()/ . Таким образом, следующие выражения эквивалентны: 
table//td
child::table/descendant-or-self::node()/child::td
child::table/descendant::td
table/descendant::td
        Прохождение предков
 parent ось содержит только родительский элемент узла. Следующее выражение выбирает элемент html , обводя над элементом body : 
/child::html/child::body/parent::html
  .. является ярлыком для parent::node() 
 Оси ancestor и ancestor-or-self пересекают всех предков узла. Следующее выражение возвращает все элементы div , являющиеся предками контекстного узла: 
ancestor::div
        Ось «сам»
 self ось содержит только сам узел контекста. Выражение . является ярлыком для self::node() и всегда соответствует узлу контекста. . ярлык полезен для перечисления потомков контекстного узла. Следующие выражения эквивалентны: 
.//span
self::node()/descendant-or-self::node()/child::span
descendant::span
  self ось может быть полезной в XPath 1.0 предикатах. Например, для выбора всех h1 , h2 и h3 дочерних узлов контекстного узла: 
*[self::h1 or self::h2 or self::h3]
        Перемещение следующих и предыдущих узлов
 Оси following-sibling и preceding-sibling following-sibling и preceding-sibling содержат братья и сестры до или после контекстного узла, а following и preceding оси содержат все узлы в документе до или после контекстного узла, но: 
- Ни одна из этих осей не содержит узлов атрибута или пространства имен.
 -  
followingось не содержит потомков. -  
precedingось не содержит предков. 
Примеры:
following::span[1]
following-sibling::*[last()]
        Перемещение атрибутов и узлов пространства имен
 Оси attribute и namespace содержат все узлы атрибута и пространства имен элемента. Shortcut @ обозначает attribute:: , поэтому следующие эквиваленты: 
child::div/attribute::class
div/@class