Валиков Алексей Н.
Шрифт:
Можно заметить очевидную аналогию с файловыми системами: пути выборки очень похожи на пути в структуре каталогов. Между тем, пути выборки гораздо мощнее:
□ для каждого из шагов выборки можно указать направление, в котором он будет выбирать узлы в документе — например, дочерние узлы, узлы- потомки или, наоборот, узлы-предки или братские узлы;
□ выбор узлов может проводиться не только по имени, но также и по типу или принадлежности определенному пространству имен;
□ выбранное на каждом шаге множество может фильтроваться одним или более предикатом (в отфильтрованном множестве останутся только те из выбранных узлов, которые поочередно удовлетворяют каждому из логических условий-предикатов).
Пути выборки являются средством получения информации, содержащейся в обрабатываемых документах. Неважно, что они возвращают множества узлов, неявное преобразование типов позволяет спокойно записывать выражения вида:
Несмотря на то, что
Фильтрующие выражения
Фильтрующие выражения выполняют две основные задачи:
□ выбор из вычисленного множества узлов некоторого подмножества в соответствии с заданными логическими критериями-предикатами;
□ вычисление путей выборки относительно узлов фильтрованного множества.
Предположим, что переменной
Фильтрующие выражения также позволяют вычислять пути выборки относительно узлов фильтруемых множеств.
Следующее преобразование демонстрирует использование относительных путей выборки в фильтрующих выражениях:
Элемент
Объединение множеств
Единственная операция над множествами, которая определена в XSLT, — это операция объединения. Если