Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Тест узла указывает тип узла, выбранный на шаге расположения. Каждая ось (child
, илиattribute
parent
self
) имеет тип основного узла. Для оси тип основного attribute
узла является <атрибутом>.
parent
Для осей и child
осей self
основной узел является <элементом>.
Замечание
Тест узла подстановочных знаков * (например, child::*
) не поддерживается.
Тест узла: пример 1
Путь child::Customer
расположения выбирает <дочерние элементы Customer> узла контекста.
В этом примере child
используется ось и Customer
является тестом узла. Основной тип узла для child
оси — <элемент>. Поэтому тест узла имеет значение TRUE, если <узел Customer> является <узлом элемента> . Если у узла контекста нет <дочерних элементов customer> , возвращается пустой набор узлов.
Тест узла: пример 2
Путь attribute::CustomerID
к расположению выбирает атрибут CustomerID узла контекста.
В этом примере attribute
используется ось и CustomerID
является тестом узла. Основной attribute
тип узла оси — атрибут<>. Поэтому тест узла имеет значение TRUE, если CustomerID является <узлом атрибута> . Если у узла контекста нет CustomerID, возвращается пустой набор узлов.
Замечание
В этой реализации XPath, если шаг расположения ссылается на <элемент> или <тип атрибута> , который не объявлен в схеме, создается ошибка. Это отличается от реализации XPath в MSXML, которая возвращает пустой набор узлов.
Сокращенный синтаксис для осей
Поддерживается следующий сокращенный синтаксис для пути расположения:
attribute::
может быть сокращено до@
.Путь
Customer[@CustomerID="ALFKI"]
к расположению совпадает сchild::Customer[attribute::CustomerID="ALFKI"]
.child::
может быть опущен из шага расположения.Таким образом,
child
это ось по умолчанию. ПутьCustomer/Order
к расположению совпадает сchild::Customer/child::Order
.self::node()
может быть сокращено до одного периода (.) иparent::node()
может быть сокращено до двух периодов (.).