» » » Алексей Валиков - Технология XSLT


Авторские права

Алексей Валиков - Технология XSLT

Здесь можно скачать бесплатно "Алексей Валиков - Технология XSLT" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство БХВ-Петербург, год 2002. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Алексей Валиков - Технология XSLT
Рейтинг:
Название:
Технология XSLT
Издательство:
БХВ-Петербург
Год:
2002
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Технология XSLT"

Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.



Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.

Для начинающих и профессиональных программистов






  </a>

  <br/><xsl:text>&#xA;</xsl:text>

  <!--

   | Если категория принадлежит раскрываемой ветке,

   | обрабатываем ее подкатегории

   +-->

  <xsl:if test="count(.|$path)=count($path)">

   <xsl:apply-templates select="category">

    <!-- Увеличиваем отступ на три пробела -->

    <xsl:with-param name="indent"

     select="concat($indent,'&#xA0;&#xA0;&#xA0;')"/>

   </xsl:apply-templates>

  </xsl:if>

 </xsl:template>


</xsl:stylesheet>

Теперь осталось лишь только создать страницу, которая при помощи JavaScript и MSXML будет выполнять преобразования и выводить результат.

Для того чтобы воспользоваться возможностями MSXML, мы включим в нашу страницу два объекта:

<!-- Объект, представляющий входящий документ -->

<object

 id="source"

 width="0"

 height="0"

 classid="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

 <param name="async" value="false">

 <param name="validateOnParse" value="false">

</object>

<!-- Объект, представляющий документ преобразования -->

<object

 id="stylesheet"

 width="0"

 height="0"

 classid="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

 <param name="async" value="false">

 <param name="validateOnParse" value="false">

</object>

"Магический" код clsid:f5078f32-c551-11d3-89b9-0000f81fe221, который присутствует в тегах обоих объектов, на самом деле не что иное, как уникальный идентификатор библиотеки MSXML 3.0, которую мы и будем использовать для выполнения преобразования. Итак, код нашей HTML- страницы будет выглядеть следующим образом.

Листинг 9.8. Код HTML-страницы

<html>

 <head>

  <meta

   http-equiv="Content-Type"

   content="text/html; charset=windows-1251" />

  <style type="text/css">

   body {font-family:Tahoma,Verdana,Arial,sans-serif; font-size:14px}

   a:link {COLOR:#990000; BACKGROUND: #ffffff; TEXT-DECORATION: none}

   a:hover {BACKGROUND: #dddddd; TEXT-DECORATION: none}

   a:visited {COLOR: #990000; TEXT-DECORATION: none}

  </style>

  <script language="JavaScript">

   <!--

   // Объявляем глобальные переменные

   // Входящий документ

   var source;

   // Преобразование

   var stylesheet;

   // Результат

   var result;


   // Функция, выполняющая действия по инициализации

   function init() {

    // Инициализируем ссылку на объект входящего документа

    source = document.all['source'];

    // Загружаем входящий документ

    source.load('source.xml');

    // Инициализируем ссылку на объект преобразования

    stylesheet = document.all['stylesheet'];

    // Загружаем документ преобразования

    stylesheet.load('stylesheet.xsl');

    // Находим элемент, в который мы будем выводить

    // результат обработки

    result = document.all['result'];

   }


   // Функция, выполняющая "раскрытие"

   //определенной ветки дерева категорий.

   function expand(id) {

    // Получаем ссылку на атрибут select

    // объявления параметра current

    var attSelect = stylesheet.selectSingleNode(

     "/xsl:stylesheet/xsl:param[@name='current']/@select");

    // Изменяем значение этого атрибута. Одинарные кавычки необходимы

    // для того, чтобы новое значение воспринималось как литерал.

    attSelect.nodeValue = "'" + id + "'";

    // Выполняем преобразование

    strResult = source.transformNode(stylesheet);

    // Обновляем страницу

    result.innerHTML = strResult;

   }

   //-->

  </script>

 </head>

 <body onload="init()">

  <!-- Объект, представляющий входящий документ -->

  <object

   id="source"

   width="0"

   height="0"

   classid="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

   <param name="async" value="false">

   <param name="validateOnParse" value="false">

  </object>

  <!-- Объект, представляющий документ преобразования -->

  <object

   id="stylesheet"

   width="0"

   height="0"

   classid="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

   <param name="async" value="false">

   <param name="validateOnParse" value="false">

  </object>

  <a href="javascript:expand(' ')">Каталог</а>

  <!-- В этом элементе мы будем выводить результат -->

  <div id="result"/>

 </body>

</html>

В браузере эта страница будет выглядеть следующим образом (рис. 9.10).

Рис. 9.10. Динамический каталог на HTML с использованием JavaScript, MSXML на основе XML и XSLT

Выполнение XSLT-преобразований в VBScript/ASP

Использование MSXML на стороне сервера не сильно отличается от клиентской версии, которую мы разобрали выше. Поскольку MSXML является стандартным СОМ-объектом, его можно использовать в любом языке программирования, умеющем работать с COM. В следующем примере будет показано, как можно использовать MSXML в ASP-странице, написанной на языке VBScript. Мы напишем небольшое Web-приложение, которое позволит отправлять короткие сообщения (SMS) через разные службы, используя один интерфейс.

Почти у всех операторов мобильной связи формы для отправки сообщений более или менее стандартны, например:

<form action=" http://www.bmtelecom.ru/wap/xm.php?snd=1 " method="POST">

 <input type="hidden" name="num" value="номер телефона">

 <textarea rows="10" cols="50" name="msg">текст сообщения</textarea>

 <br><br>

 <input class="flat" type="submit" value="Послать сообщение">

</form>

При этом различаться могут адреса служб отправки сообщений, методы отправки форм и наименования полей ввода. Все это мы можем описать в отдельном документе.

Листинг 9.9. Документ, описывающий формы служб отправки сообщений — services.xml

<services>

 <service id="MTNSMS">

  <action>http://www.mtnsms.com/sendsms.php</action>

  <method>GET</method>

  <text>msg</text>

  <number>num</number>

 </service>


 <service id="SMSHost">

  <action>http://www.smshost.net/servlets/sms</action>

  <method>POST</method>

  <text>message</text>

  <number>phone</number>

 </service>

</services>

Контакт-лист после этого может быть оформлен следующим образом.

Листинг 9.10. Контакт-лист — документ source.xml

<?xml version="1.0" encoding="windows-1251"?>

<people>

 <person id="p1">

  <name>Иван Иванович</name>

  <number>18005557684</number>

  <service id="MTNSMS"/>

 </person>

 <person id="p2">

  <name>Иван Никифорович</name>

  <number>447856273447</number>

  <service id="SMSHost"/>

 </person>

</people>

Преобразование, генерирующее HTML-страницу с формой отправки можно задать как.

Листинг 9.11. Преобразование stylesheet.xsl

<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet

 version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transfоrm">


 <xsl:output

  method="html"

  indent="yes"

  encoding="windows-1251"/>


 <!-- Параметр, указывающий выбранного адресата, по умолчанию - p1 -->

 <xsl:param name="id" select="p1"/>


 <xsl:template match="/">

  <html>

   <xsl:call-template name="head"/>

   <body>

    <xsl:apply-templates select="people"/>

   </body>

  </html>

 </xsl:template>


 <xsl:template match="people">

  <!-- Создаем список адресатов -->

  <xsl:apply-templates select="person"/>

  <!-- Создаем форму для выбранного адресата -->

  <xsl:apply-templates select="person[@id=$id]" mode="form"/>

 </xsl:template>


 <xsl:template match="person">

  <!-- Если текущий адресат выбран -->

  <xsl:if test="@id = $id">

   <!-- Выводим его имя в квадратных скобках и без гиперссылки -->

   <xsl:text>&#xA0;[&#хА0;</xsl:text>

   <xsl:value-of select="name"/>

   <xsl:text>&#xA0;]&#xA0;</xsl:text>

  </xsl:if>

  <!-- Если адресат не выбран -->

  <xsl:if test="@id != $id">

   <!-- Выводим его имя без скобок и с гиперссылкой -->

   <xsl:text>&#xA0;&#хА0;&#хА0;</xsl:text>

   <A href="sms.asp?id={@id}">

    <xsl:value-of select="name"/>


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Технология XSLT"

Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Алексей Валиков

Алексей Валиков - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Алексей Валиков - Технология XSLT"

Отзывы читателей о книге "Технология XSLT", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.