Узлы 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>

Примеры узлов в приведенном выше 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>