Сокращенный синтаксис XPath
Сокращенный синтаксис XPath
Сокращения синтаксиса XPath могут быть весьма удобными. Ниже приведены правила:
• self::node() может быть сокращено как .;
• parent::node() может быть сокращено как ..;
• child::childname может быть сокращено как childname;
• attribute::childname может быть сокращено как @childname;
• /descendant-or-self::node()/ может быть сокращено как //.
Например, путь расположения .//PLANET — сокращение для self::node()/descendant-or-self::node()/child::PLANET. Можно также сократить выражение предиката [position()=3] как [3], [position()=last()] как [last()] и т.д. Работать с путями расположения XPath при помощи сокращенного синтаксиса значительно проще. В следующем списке перечислен ряд примеров путей расположения с использованием сокращенного синтаксиса:
• PLANET возвращает дочерние элементы <PLANET> контекстного узла;
• * возвращает все дочерние элементы контекстного узла;
• text() возвращает все дочерние текстовые узлы контекстного узла;
• @UNITS возвращает атрибут UNITS контекстного узла;
• @* возвращает все атрибуты контекстного узла;
• PLANET[3] возвращает третьего ребенка <PLANET> контекстного узла;
• PLANET[last()] возвращает последнего ребенка <PLANET> контекстного узла;
• */PLANET возвращает всех внуков <PLANET> контекстного узла;
• /PLANETS/PLANET[3]/NAME[2] возвращает второй элемент <NAME> третьего элемента <PLANET> элемента <PLANETS>;
• //PLANET возвращает всех потомков <PLANET> корня документа;
• PLANETS//PLANET возвращает элементы-потомки <PLANET> дочерних элементов <PLANETS> контекстного узла;
• //PLANET/NAME возвращает все элементы <NAME>, у которых есть родитель <PLANET>;
• . возвращает сам контекстный узел;
• .//PLANET возвращает элементы-потомки <PLANET> контекстного узла;
• .. возвращает родителя контекстного узла;
• ../@UNITS возвращает атрибут UNITS родителя контекстного узла;
• .//.. возвращает всех родителей потомка контекстного узла и родителя контекстного узла;
• PLANET[NAME] возвращает детей <PLANET> контекстного узла, у которых есть дети <NAME>;
• PLANET[NAME="Venus"] возвращает детей <PLANET> контекстного узла, у которых есть дети <NAME> с текстом, равным «Venus»;
• PLANET[@UNITS="days"] возвращает всех детей <PLANET> контекстного узла, у которых есть атрибут UNITS со значением «days»;
• PLANET[6][@UNITS="days"] возвращает шестого ребенка <PLANET> контекстного узла, только если у этого ребенка есть атрибут UNITS со значением «days». Можно также написать PLANET[@UNITS="days"][6];
• PLANET[@COLOR and @UNITS] возвращает всех детей <PLANET> контекстного узла, у которых есть атрибут COLOR и атрибут UNITS;
• "//PLANET[not(.=preceding::PLANET)]" выбирает все элементы <PLANET>, значение которых отлично от значения любого предшествующего элемента <PLANET>;
• *[1][self::NAME] выбирает любой элемент <NAME>, который является первым ребенком своего родителя;
• *[position() < 5][@UNITS] выбирает первых пятерых детей контекстного узла, у которых есть атрибут UNITS.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Сокращенный синтаксис
Сокращенный синтаксис Для образцов существует два правила сокращения осей:• child::childname может быть сокращено как childname;• attribute::childname может быть сокращено как @childname.В следующем списке перечислен ряд примеров образцов с сокращенным синтаксисом; в конце главы вы увидите
Сокращенный синтаксис предикатов
Сокращенный синтаксис предикатов Выражения предикатов можно сокращать, опуская "position()=". Например, [position()=3] становится [3], [position()=last()] становится [last()] и т.д. С использованием сокращенного синтаксиса применять выражения XPath в предикатах становится существенно проще. Вот ряд
Числа XPath
Числа XPath В XPath числа хранятся в формате чисел с плавающей точкой двойной точности. В соответствии с формальным определением, числа XPath должны храниться в формате 64-разрядных чисел с плавающей точкой двойной точности IEEE 754, и все числа хранятся как числа с плавающей точкой
Применение осей XPath
Применение осей XPath К этому моменту мы рассмотрели три части шагов расположения — ось, условие узла и предикат. Вы должны быть знакомы с этими элементами по проделанной нами работе с образцами выбора, но обратите внимание на ось в предыдущем примере — preceding-sibling. До сих пор
Проверка выражений XPath
Проверка выражений XPath В пакет Xalan входит удобная программа-пример, ApplyXPath.java, позволяющая применить выражение XPath к документу и посмотреть на результат, что очень помогает при тестировании. Для запуска этого примера вам нужно будет скомпилировать ApplyXPath.java в ApplyXPath.class при
XPath 2.0
XPath 2.0 XPath находится в стадии обновления, и в него включаются средства поддержки XSLT 2.0 (см. www.w3.org/TR/xpath20req). Задачи XPath 2.0 следующие:• упрощение операций с содержимым типов, поддерживаемых схемой XML;• упрощение операций со строковым содержимым;• поддержка соответствующих
Изменения в XPath 2.0
Изменения в XPath 2.0 Разрабатываемая версия языка XPath, вследствие интеграции с XQuery, очевидно, претерпит серьезные изменения. Новая спецификация уже сейчас разбита на два документа: документ, описывающий модель данных и документ, описывающий функции и операторы. Поэтому на