Дерево документа
Язык XPath представляет документ в виде дерева, корнем которого служит корневой элемент документа. От коня отходят ветви, заканчивающиеся узлами. Узлами (nodes) служат, например, вложенные элементы, их атрибуты и тексты, составляющие содержимое корневого элемента. От каждого вложенного элемента отходят свои ветви, рекурсивно повторяющие ветви корневого элемента. Таким образом, у каждого узла может быть только один узел – «предок», причем предком может быть только узел корневого или другого элемента дерева, но не атрибут и не текстовый узел.
Узлы дерева
Язык XPath различает семь видов узлов.
Узлы документа (document nodes). В первой версии XPath они назывались корневыми узлами (root nodes). Не отождествляйте узел документа с узлом корневого элемента документа. Узел корневого элемента вложен в узел документа наряду с узлами-комментариями и узлами инструкции по обработке. Кроме того, в языке XPath предусмотрена возможность работы с другими типами документов, возможно, содержащими несколько корневых элементов. Имя узла документа совпадает с именем корневого элемента документа.
Узлы-элементы (element nodes). Имя узла-элемента состоит из идентификатора пространства имен, получаемого по префиксу уточненного имени элемента, и локального имени элемента. Это расширенное имя (expanded-name) узла. Если у элемента есть атрибут типа id, то он служит идентификатором узла.
а
Узлы-атрибуты (attributes nodes). Их предок — узел-элемент, к которому относятся атрибуты, хотя они не считаются потомками этого узла. Узел-атрибут тоже определяется расширенным именем, полученным из уточненного имени атрибута.
Узлы пространств имен (namespace nodes). С каждым узлом-элементом связаны узлы тех пространств имен, в область действия которых входит данный элемент. Так же как и узлы-атрибуты, они не считаются потомками узла-элемента, хотя считают его своим предком. Поэтому программа-анализатор, обходя дерево, не будет автоматически просматривать узлы пространств имен. Имя узла пространства имен — это префикс, связанный с ним.
Узлы инструкций по обработке (processing instruction nodes). Это отдельные узлы, имена которых — это имена целевых приложений, выполняющих инструкцию. Первая строка пролога документа XML не считается инструкцией по обработке и не входит в дерево документа.
Узлы комментарии (comment nodes). Каждый комментарий заносится в дерево как узел без имени.
Текстовые узлы (text nodes). Это строка символов, записанная в теле элемента между вложенными элементами. У текстовых узлов нет расширенного имени.
Узел любого вида можно представить строкой символов. Для каждого вида узла правила представления свои, они перечислены далее.
Строка, представляющая узел документа или узел-элемент, состоит из всех строк, представляющих его узлы-потомки текстового вида.
Строка, представляющая узел-атрибут, содержит его значение.
Строка, представляющая узел пространства имен, содержит его строку URI.
Строка узла инструкции по обработке составлена из ее содержимого.
Узел-комментарий и текстовый узел сами являются строками, причем начальные символы комментария в строку не входят.
Достарыңызбен бөлісу: |