Книга: Технология XSLT
Фильтрующие выражения
Разделы на этой странице:
Фильтрующие выражения
Фильтрующие выражения выполняют две основные задачи:
? выбор из вычисленного множества узлов некоторого подмножества в соответствии с заданными логическими критериями-предикатами;
? вычисление путей выборки относительно узлов фильтрованного множества.
Примеры
Предположим, что переменной nodeset
присвоено некоторое множество узлов. Задачи типа "выбрать каждый второй узел этого множества" или "выбрать первый узел этого множества" или вообще, любой выбор узлов этого множества в соответствии с некоторыми заданными логическими критериями являются задачами фильтрации. Выражение $nodeset[1]
выберет первый в порядке просмотра документа узел множества $nodeset
; выражение $nodeset[position() mod 2 = 0]
выберет четные узлы множества $nodeset
. Здесь "[1]
" и "[position() mod 2 = 0]
" являются предикатами — логическими выражениями, которые фильтруют множество.
Фильтрующие выражения также позволяют вычислять пути выборки относительно узлов фильтруемых множеств.
Пример
Листинг 3.22. Входящий документ
<data>
<string>
<value>a</value>
<value>b</value>
<value>c</value>
</string>
<number>
<value>1</value>
<value>2</value>
<value>3</value>
</number>
</data>
Следующее преобразование демонстрирует использование относительных путей выборки в фильтрующих выражениях:
Листинг 3.23. Преобразование
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Тransform">
<xsl:template match="data">
<values>
<xsl:copy-of select="(string | number)/value"/>
</values>
</xsl:template>
</xsl:stylesheet>
Листинг 3.24. Входящий документ
<values>
<value>a</value>
<value>b</value>
<value>c</value>
<value>1</value>
<value>2</value>
<value>3</value>
</values>
Элемент values
выходящего документа содержит множество, являющееся результатом вычисления выражения (string | number)/value
. Это будет множество элементов value
, принадлежащих элементам string
или number
.
- Индексы по выражениям
- Выражения в значениях по умолчанию для доменов
- Выражения в EXCEPTION
- 6. Выражения реляционной алгебры
- 3.13.7. Рекурсия в регулярных выражениях
- 6. Лекция: Обработка текстов. Регулярные выражения. Unicode.
- Применение лямбда-выражения в качестве задачи
- 4.2.2. Возвращаясь к строкам и регулярным выражениям
- Выражения с двумя цифрами
- 2.11 Условные выражения
- ГЛАВА 21. Выражения и предикаты.
- 12.8. Регулярные выражения