Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Включение таблицы стилей в документ XML
Таблицу стилей можно записывать не в отдельный файл, а непосредственно в преобразуемый документ XML. Для этого в элементе xsl:stylesheet предусмотрен атрибут-идентификатор id, на который можно ссылаться обычным образом из инструкции по обработке ?xml-stylesheet, как сделано в примере:
<?xml version="1.0" encoding="windows-1251" ?> <?xml-stylesheet type="text/xsl" href="#simple" ?> <notebook> <xsl:stylesheet version="l.0" id="simple" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" encoding="CP866" /> </xsl:stylesheet> <person> <name first="Иван" second="Петрович" surname="Сидоров"/> <address> <street>Садовая, 12 — 34</street> <city>Пушкин</city><zip>123321/zip> </address> <phone-list> <work-phone> 123456 </work-phone> <home-phone> 654321 </home-phone> </phone-list> </person> <person> <name first="Mapия" second="Ивановна" surname ="Федорова"/> <address> <street> Hижняя, 12 </street> <city> 3apeчeнск </city><zip> 321123 </zip> </address> <phone-list> <home-phone> 224321 </home-phone> </phone-list> </person> </notebook>
2.4 Преобразование документа XML в документ HTML
Таблицы стилей, записанные в примерах XML документ simple . xsl и simple _2. xsl, предназначены для преобразования документа XML в простой "плоский" текст (xsl:output method="text") для вывода на консоль или в текстовый файл. Приведем пример преобразования документа XML notebook . xml в документ HTML. Соответствующая таблица стилей записана в файле Style_3.xsl. Обратите внимание на то, что в элементе xsl:output method "html" указан метод вывода "html".
<?xml version="1.0" encoding="windows-1251"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="windows-1251"/> <xsl:template match="/"> <html><head><title> Адресная книжка </title></head> <body><h2> Фамилии, адреса и телефоны </ h2> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="name"> <p /> <xsl:value-of select="@first" /> <xsl:text> </xsl:text> <xsl:value-of select="@second" /><xsl:text> </xsl:text> <xsl:value-of select="@surname" /> <br /> </xsl:template> <xsl:template match="address"> <br /> <xsl:value-of select="street" /> <xsl:text> </xsl:text> <xsl:value-of select="city" /> <xsl:text> </xsl:text> <xsl:value-of select="zip" /> <br /> </xsl:template> <xsl:template match="phone-list"> Рабочий: <xsl:value-of select="work-phone" /> <br /> Домашний: <xsl:value-of select="home-phone" /> <br /> </xsl:template> </xsl:stylesheet>
В примере видно, что теги языка HTML записываются в таблице стилей XSL как простой текст. Процессор XSLT не обрабатывает их, поскольку они объявлены в другом пространстве имен. Теги HTML перейдут в преобразованный документ без изменений, но будут записаны по правилам языка HTML, т. к. у элемента xsl:output указан атрибут method="html". Например, тег <br /> будет записан как <br>. Эту таблицу стилей можно записать в файл, например Style_3.xsl, и сослаться на него в файле notebook . xml, описывающем адресную книжку, включив в код следующие строки:
<?xml version="1.0" encoding="windows-1251" ?> <?xml-stylesheet type="text/xsl" href="Style_3.xsl"?> <notebook> <!-- Содержимое адресной книжки --> … </notebook>
После этого любой браузер, "понимающий" XML и XSLT, например Mozilla или Internet Explorer 6. x , покажет файл notebook . xml как предписано таблицей стилей в файле Style_3.xsl.. На рис. 2.1 показано окно браузера с результатом преобразования.
Рис. 2.1. Вывод преобразования в окно браузера
На одном занятии сложно подробно разбирать все конструкции языка XSLT. Языку XSLT посвящено уже много хороших книг как языку XSLT 1.0. так и новой его версии XSLT 2.0. Главная особенность версии XSLT 2.0 заключается в том, что она опирается на язык XPath версии 2.0. Переход в языке XPath от множества узлов к последовательностям узлов и атомарных значений привел ко многим мелким изменениям в языке XSLT 2.0.
Вывод: Язык XSL представляет документ в виде дерева. Процессор языка XSL преобразует это дерево, руководствуясь таблицей стилей, и форматирует его для вывода в окно браузера, на принтер, экран проектора или на какое-то другое устройство. Таким образом, обработка проходит два этапа: преобразование дерева документа (XML transform) и форматирование (formatting) дерева, полученного после преобразования. |
Последнее изменение этой страницы: 2019-05-08; Просмотров: 264; Нарушение авторского права страницы