загрузка...
 
ФІЛЬТРАЦІЯ І СОРТУВАННЯ ДАНИХ XML
Повернутись до змісту

ФІЛЬТРАЦІЯ І СОРТУВАННЯ ДАНИХ XML

Розглянемо основи застосування XSL-таблиць стилів для фільтрації і сортування даних XML.

Фільтрація

Значення, яке привласнюється атрибутам match або select, є відповідним зразком одному або декільком елементам в XML-документі. (Атрибут match використовується для елемента template, а атрибут select – для елементів value-of, for-each і apply-templates). Зразки, з якими ви мали справу до цих пір, містили тільки оператор шляху, який задавав ім'я елемента і, можливо, один або декілька вкладених елементів. Ви можете обмежити кількість елементів, що відповідають шаблону, ввівши фільтр – вираз, поміщений e квадратні дужки ([]) безпосередньо за оператором шляху. Наприклад, зразок, привласнений наступному атрибуту match вказує, що відповідний елемент повинен носити ім'я BOOK, і крім того (це визначається фільтром), повинен мати дочірній елемент BINDING, який містить текст "trade paperback":

.

Якщо у фільтр включено тільки ім'я елемента, то відповідний елемент повинен мати дочірній елемент із вказаним ім'ям. Наприклад, наступний зразок відповідає будь-якому елементу ITEM, що має дочірній елемент з ім'ям CD, незалежно від вмісту елемента CD:

match="ITEM[CD]".

Наступний зразок відповідає будь-якому елементу SHIRT, що має дочірній елемент COLOR, який містить текст "red":

match="SHIRT[COLOR='red']".

А наступний зразок, навпаки, відповідає будь-якому елементу SHIRT, що має дочірній елемент COLOR, який не містить текст "red":

select="SHIRT[COLOR='red']".

Примітка. Якщо елемент має більше, ніж один дочірній елемент з ім'ям, вказаним в умові фільтрації, оператор порівняння застосовується тільки до першого дочірнього елемента. Наприклад, якщо елемент SHIRT має два дочірні елементи COLOR, зразок "SHIRT[COLOR='red']" відповідатиме елементу, тільки якщо перший елемент COLOR містить слово "red".



загрузка...