Язык XML - практическое введение (часть 2)

       

Поиск элемента


   Поиск нужного элемента или поддерева осуществляется при помощи методов selectNode и selectSingleNode (то же что и selectNode, только возвращает первый найденный элемент). В качестве параметров им необходимо указать строку XSL запроса (образец поиска - XSL pattern).

   Синтаксис языка запросов очень гибок и является одним из самых мощных механизмов в XSL - при помощи них можно осуществлять поиск элемента по названию, значению атрибутов, содержанию, учитывая вложенность и положение в дереве элементов. Наиболее ярко все эти возможности демонстрируются при обработке XML-документов стилевыми таблицами XSL , когда мы можем выделять из общего дерева необходимые нам элементы и применять к ним специальные форматирующие инструкции.

   Внешне язык XSL запросов немного напоминает обычный способ определения пути к ресурсу в файловой системе - список узлов дерева, разделенных символом /. Для указания на текущий элемент используется символ "." , на родительский - "..", для выделения всех дочерних элементов - символ "*", для выделения элемента, расположенного просто "ниже" по дереву(не важно на каком уровне вложенности) - "//".

   Вот примеры простых XSL шаблонов:

   "/music-collection" - корневой элемент

   "bards/" - возвращает дочерние элементы для элемента bards

   "authors-list//" - список всех элементов, вложенных в authors-list

   "author[@id]" - список элементов author, в котором определен атрибут id

   "author[@id=2]" - элемент author, в котором значение атрибута id равно двум

   "author[address]" - список элементов author, которые содержат хотя бы один элемент address

   "author[address or city]" - список элементов author, содержащих элементы address или city

   

   Условие на значение в запросе должно заключаться в символы "[" и "]". Для выбора значения атрибута в условии указывается символ @.

   Применяя к XML- документу различные шаблоны поиска, можно осуществлять сложные манипуляции с его содержимым, динамически изменяя объем отображаемой пользователю информации в зависимости от производимых им действий (например, динамическая сортировка, отображение подчиненных таблиц и т.д.) Более подробное описание XSL-таблиц будет приведено в одной из следующих статей.

   

Назад | Содержание | Вперед



Содержание раздела