Валиков Алексей Н.
Шрифт:
В случае, если хотя бы одна из функций
Нельзя не согласиться с тем, что приведенный выше способ не отличается элегантностью. Реализовывать свой вариант для каждого существующего процессора может быть довольно трудоемкой задачей — но такова уж плата за возможности расширений.
Функция расширения nodeset
Одной из самых полезных функций расширения, которая, как правило, уже штатно реализована во многих процессорах (то есть, не требует дополнительного программирования) является функция
Предположим, что мы создаем в переменной
При попытке вычислить выражение вида
Текущая спецификация языка XPath совершенно явно говорит о том, что ни один тип данных не может быть преобразован во множество узлов. Функция
В разных процессорах эта функция имеет различный синтаксис: она может носить имя
Функция принимает на вход единственный аргумент, являющийся фрагментом дерева и возвращает множество узлов, состоящее из его корня.
Предположим, что мы обрабатываем входящий документ, содержащий трехбуквенные коды языков.
Фрагмент шаблона, обрабатывающий этот список, может выглядеть следующим образом: