Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Включение таблицы стилей в документ 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; Просмотров: 262; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь