Технология Microsoft ADO.NET

       

Применение атрибутов в XSL-схемах для фильтрации выводимого содержимого


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

Таблица 10.12.

XML-документ, XMLTour4.xmlXSL-таблица, XSLTour4.xsl
<?xml version="1.0" encoding="utf-8" ?>

<!-- Название файла XMLTour.xml --> <?xml-stylesheet type="text/xsl" href="XSLTour4.xsl"?>

<TABLE> <TOUR Open = "yes"> <IDTOUR>1</IDTOUR> <NAME>Кипр</NAME> <PRICE>25 000,00р. </PRICE> <INFORMfTION>В стоимость двух взрослых путевок входит цена одной детской (до 7лет)</INFORMfTION> </TOUR> <TOUR> <IDTOUR>2</IDTOUR> <NAME>Греция</NAME> <PRICE>32 000,00р. </PRICE> <INFORMfTION>В августе и сентябре действуют специальные скидки</INFORMfTION> </TOUR> <TOUR> <IDTOUR>3</IDTOUR> <NAME>Таиланд</NAME> <PRICE>30 000,00р.</PRICE> <INFORMfTION>Не включая стоимость авиабилета</INFORMfTION> </TOUR> <TOUR> <IDTOUR>4</IDTOUR> <NAME>Италия</NAME> <PRICE>26 000,00р.</PRICE> <INFORMfTION>Завтрак в отеле включен в стоимость путевки</INFORMfTION> </TOUR> <TOUR Open = "yes"> <IDTOUR>5</IDTOUR> <NAME>Франция</NAME> <PRICE>27 000,00р.</PRICE> <INFORMATION>Дополнительные экскурсии не входят в стоимость путевки</INFORMfTION> </TOUR> </TABLE>

<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="/"> <H3>Таблица "Туры"</H3> <xsl:for-each select="TABLE/TOUR[@ Open = 'yes']"> <BR/>

<SPAN STYLE= "font-style:italic">Код тура: </SPAN> <xsl:value-of select="IDTOUR"/><BR/> <SPAN STYLE= "font-style:italic">Название: </SPAN> <xsl:value-of select = "NAME"/> <BR/> <SPAN STYLE= "font-style:italic"> Цена: </SPAN> <xsl:value-of select= "PRICE"/><BR/> <SPAN STYLE= "font-style:italic">Информация: </SPAN> <xsl:value-of select= "INFORMATION"/><BR/> </xsl:for-each> </xsl:template> </xsl:stylesheet>

Вид в браузере Internet Explorer


Исходные документы XMLTour2.xml и XSLTour2. xsl были взяты из таблицы 10.8. Для туров с кодами 1 и 5 в тегах TOUR добавлены атрибуты Open:

... <TOUR Open = "yes"> <IDTOUR>1</IDTOUR> ... <TOUR Open = "yes"> <IDTOUR>5</IDTOUR> ...

Таблица XSL трактует атрибут, принадлежащий элементу в XML-документе, как дочерний элемент. Для ссылки на атрибут в образце XSL необходимо предварить имя атрибута символом @, - это указывает, что имя относится к атрибуту, а не к элементу:

<xsl:for-each select="TABLE/TOUR[@ Open = 'yes']">

В результате этого отбора были выведены только те элементы XML-документа, которые содержали описываемый атрибут.

В программном обеспечении к курсу вы найдете файлы XMLTour4.xml и XSLTour4.xsl в папке AttXSL (Code\Glava5\XSL\ AttXSL).

  1)

  WYSIWYG - "What You See Is What You Get" - "Что видишь, то и получаешь".

  2)

  Среда Microsoft Visual Studio.NET не содержит встроенных средств для проверки документа на действительность. Для этого можно использовать специализированные xml-редакторы, например, <oXygen/> (http://www.oxygenxml.com/).

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