Узлы XPath

В XPath есть семь типов узлов: элемент, атрибут, текст, пространство имен, обработка инструкций, комментарий и узел документа (или корневой узел).

Термины XPath

Узел (Node)

В XPath есть семь типов узлов: элемент, атрибут, текст, пространство имен, обработка инструкций, комментарий и документ (корневой узел). XML-документ рассматривается как узловое дерево. Корень дерева называется узлом документа или корневым узлом.

Смотрите следующий этот XML-документ:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author> 
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>

Примеры узлов в aforementioned XML-документе:

<bookstore> (узел документа)
<author>J K. Rowling</author> (узел элемента)
lang="en" (узел атрибута) 

Базовое значение (или атомарное значение, Atomic value)

Базовые значения - это ноды без родителей или детей.

Пример базового значения:

J K. Rowling
"en"

Элемент (Item)

Элементы могут быть базовыми значениями или узлами.

Отношения узлов

Родитель (Parent)

У каждого элемента и атрибута есть родитель.

В следующем примере элемент book является родителем элементов title, author, year и price:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Дети (Children)

Элементы могут иметь ноль, один или несколько детей.

В следующем примере элементы title, author, year и price являются детьми элемента book:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Сиблинг (Sibling)

Ноды, имеющие одного и того же родителя

В следующем примере элементы title, author, year и price являются сиблингами:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Предок (Ancestor)

Родитель, родитель родителя и т.д.

В следующем примере предки элемента title - это элементы book и bookstore:

<bookstore>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>

Потомок (Descendant)

Под节点, подпод节点 и т.д.

В следующем примере потомки bookstore - это элементы book, title, author, year и price:

<bookstore>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>