» » » » Стивен Холзнер - XSLT


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

Стивен Холзнер - XSLT

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

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

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

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

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

Описание книги "XSLT"

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



Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.

Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.

Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике






В этом случае я, пользуясь MSXML и JavaScript, преобразую planets.xml при помощи planets.xsl. Для хранения этих документов я создаю два новых объекта, XMLDocument и XSLDocument, опираясь на классы ActiveXObject и DOMDocument процессора MSXML в функции xslt. (Эта функция запускается сразу при загрузке страницы, поскольку я установил атрибут onload элемента <BODY> в «xslt()»). Я также создам объект, соответствующий элементу <DIV>, который отображает результаты преобразования:

<HTML>

 <HEAD>

  <TITLE>XSLT Using JavaScript</TITLE>

  <SCRIPT LANGUAGE="JavaScript">

   function xslt() {

    var XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var XSLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var HTMLtarget = document.all['targetDIV'];

    .

    .

    .

И planets.xml, и planets.xsl являются документами XML; и процессор MSXML может работать и как проверяющий на допустимость разборщик XML, если установить свойство validateOnParse в true. Для загрузки planets.xml и planets.xsl в объекты XMLDocument и XSLDocument служит метод load. Я также проверяю наличие ошибок, просматривая код ошибок разбора следующим образом:

<HTML>

 <HEAD>

  <TITLE>XSLT Using JavaScript</TITLE>

  <SCRIPT LANGUAGE="JavaScript">

   function xslt() {

    var XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var XSLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var HTMLtarget = document.all['targetDIV'];

    XMLDocument.validateOnParse = true;

    XMLDocument.load('planets.xml');

    if (XMLDocument.parseError.errorCode != 0) {

     HTMLtarget.innerHTML = "Error!";

     return false;

    }

    XSLDocument.validateOnParse = true;

    XSLDocument.load('planets.xsl');

    if (XSLDocument.parseError.errorCode != 0) {

     HTMLtarget.innerHTML = "Error!";

     return false;

    }

    .

    .

    .

Теперь, после того как оба файла, planets.xml и planets.xsl, были загружены, преобразование можно осуществить методом transformNode. Посмотрите, как я преобразую XMLDocument при помощи XSLDocument и показываю результат в элементе-приемнике <DIV>:

<HTML>

 <HEAD>

  <TITLE>XSLT Using JavaScript</TITLE>

  <SCRIPT LANGUAGE="JavaScript">

   function xslt() {

    var XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var XSLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var HTMLtarget = document.all['targetDIV'];

    .

    .

    .

    HTMLtarget.innerHTML = XMLDocument.transformNode(XSLDocument);

    return true;

   }

  </SCRIPT>

 </HEAD>

 <BODY onload="xslt()">

  <DIV ID="targetDIV">

  </DIV>

 </BODY>

</HTML>

Эти результаты показаны на рис. 10.1.

Рис. 10.1. Использование JavaScript для преобразования документа

Обработка ошибок разбора

При использовании JavaScript для загрузки документов XML и XSL и работы с ними важно знать, как сообщать об ошибках разбора. В предыдущем примере я сообщал об ошибках, выводя сообщение «Error!» в элементе-приемнике <DIV> документа HTML, но это не очень информативно. Как получить дополнительную информацию? 

В следующем примере я намерено создаю ошибку разбора, изменив первый тег <PLANET> в planets.xml на тег <PLANETS>:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xml" href="planets.xsl"?>

<PLANETS>

 <PLANETS>

  <NAME>Mercury</NAME>

  <MASS UNITS="(Earth = 1)">.0553</MASS>

  <DAY UNITS="days">58.65</DAY>

  <RADIUS UNITS="miles">1516</RADIUS>

  <DENSITY UNITS="(Earth = 1)">.983</DENSITY>

  <DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->

 </PLANET>

 .

 .

 .

Я установил свойство validateOnParse объекта XMLDocument в true (значение по умолчанию — false, что означает отсутствие проверки), поэтому процессор MSXML отловит эту ошибку разбора. Объект XMLDocument содержит объект parseError, и если его свойство errorCode не равно нулю, это означает наличие ошибки. Сейчас я хочу не просто вывести сообщение «Error!», а расшифровать ошибку при помощи новой функции getError, которая возвращает строку с информацией о месте и причине ошибки.

С целый получения этой дополнительной информации я использую свойства <url, line, linepos и reason объекта parseError для того, чтобы определить вызвавший проблему файл, строку, позицию ошибки и ее описание (листинг 10.1). 

Листинг 10.1. Создание преобразования XSLT и отображение ошибок разбора

<HTML>

 <HEAD>

  <TITLE>XSLT Using JavaScript</TITLE>

   <SCRIPT LANGUAGE="JavaScript">

    function xslt() {

    var XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var XSLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

    var HTMLtarget = document.all['targetDIV'];

    XMLDocument.validateOnParse = true;

    XMLDocument.load('planets.xml');

    if (XMLDocument.parseError.errorCode != 0) {

     HTMLtarget.innerHTML = getError(XMLDocument);

     return false;

    }

    XSLDocument.validateOnParse = true;

    XSLDocument.load('planets.xsl');

    if (XSLDocument.parseError.errorCode != 0) {

     HTMLtarget.innerHTML = getError(XSLDocument);

     return false;

    }

    HTMLtarget.innerHTML = XMLDocument.transformNode(XSLDocument);

    return true;

   }


   function getError(errorObject) {

    var Error = new String;

    Error = "Error. " + errorObject.parseError.url + "<BR>" +

     "Line: " + errorObject.parseError.line + "<BR>" +

     "Character: " + errorObject.parseError.linepos + "<BR>" +

     "Description: " + errorObject.parseError.reason;

    return Error;

   }

  </SCRIPT>

 </HEAD>

 <BODY onload="xslt()">

  <DIV ID="targetDIV">

  </DIV>

 </BODY>

</HTML>

Результат можно увидеть на рис. 10.2, где показаны вызвавший ошибку файл, место ошибки и описание ошибки процессором MSXML. Если вы собираетесь реализовывать преобразования XSLT в Internet Explorer, когда пользователи просматривают ваши документы случайным образом, обработка подобных ошибок разбора исключительно важна.

Рис. 10.2. Обработка ошибки разбора


Пока что я преобразовывал при помощи процессора MSXML только документ целиком, но здесь у вас существует значительно больше возможностей. Например, в следующем разделе я воспользуюсь XSLT в Internet Explorer для сортировки данных планет в HTML-таблицы по нажатию кнопок. Для этого я буду обращаться к отдельным узлам внутри таблицы стилей.

Internet Explorer и динамические стили

Для того чтобы продемонстрировать все возможности управления преобразованиями XSLT при использовании процессора MSXML, в этом примере я разрешу пользователю динамически сортировать таблицу Planets. Общая идея показана на рис. 10.3. Пользователю достаточно щелкнуть на кнопку, чтобы отсортировать таблицу по названию, массе, радиусу или дню.

Рис. 10.3. Поддержка динамических преобразований XSLT


Для сортировки таблицы я, как легко догадаться, применяю таблицу стилей с элементом <xsl:sort> (листинг 10.2). По умолчанию я сортирую планеты по названию.

Листинг 10.2. Применение динамических XSLT-преобразований

<?xml version="1.0" encoding="iso-8859-1"?>

<xsl:stylesheet

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">

 <xsl:template match="/">

  <HTML>

   <HEAD>

    <TITLE>

     The Sorted Planets Table

    </TITLE>

   </HEAD>

   <BODY>

    <H1>

     The Sorted Planets Table

    </H1>

    <TABLE BORDER="2">

     <TR>

      <TD>Name</TD>

      <TD>Mass</TD>

      <TD>Radius</TD>

      <TD>Day</TD>

     </TR>

     <xsl:apply-templates select="/PLANETS/PLANET">

      <xsl:sort select="NAME" order="ascending"/>

     </xsl:apply-templates>

    </TABLE>

   </BODY>

  </HTML>

 </xsl:template>


 <xsl:template match="PLANET">

  <TR>

   <TD><xsl:value-of select="NAME"/></TD>


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

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

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


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

Все книги автора Стивен Холзнер

Стивен Холзнер - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

Отзывы о "Стивен Холзнер - XSLT"

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

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