Обработка XML-документов с помощью JavaScript.
JavaScript предоставляет большие возможности для работы с XML-документами. Аналогично HTML в JavaScript можно создать объект, содержащий объектную модель XML-документа позволяющую извлекать и изменять XML-элементы, добавлять новые и т.д. В данном разделе приведем пример только одной интересной возможности: Создается объект для XML-документа: xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; Загружается файл: xmlDoc.load('пример.xml'); Проверяется коррекность загрузки: if(xmlDoc.parseError.errorCode!= 0) { Если код ошибки не равен 0, то выводится сообщение об ошибке: alert(xmlDoc.parseError.reason); alert(xmlDoc.parseError.line); } Создается объект для XSL-преобразования: xslDoc = new ActiveXObject("Microsoft.XMLDOM"); xslDoc.async = false; Загружается файл: xslDoc.load('пример.xsl'); Проверяется коррекность загрузки: if(xslDoc.parseError.errorCode!= 0) { Если код ошибки не равен 0, то выводится сообщение об ошибке: alert(xslDoc.parseError.reason); alert(xslDoc.parseError.line); } Вывод XML-документа с XSL-преобразованием document.write(xmlDoc.transformNode(xslDoc)); До вывода XML-документа можно произвести необходимые действия с XML и XSL-документами. Например, изменить порядок сортировки, условие фильтрации и т.д. Подробно работа с объектной моделью XML-документа описана: 1. «Объектная модель XML документа». Г.Е. Берман, кафедра "Информационных технологий. Данный документ является расширенным описанием лекции по XML DOM, которую автор читает для студентов факультета прикладной математики Тверского госуниверситета в рамках спецкурса «Технологии XML». http://gberman.narod.ru/xmllections/dom/start.htm 2. JavaScript и XML. http://www.codenet.ru/webmast/xml/xslt/6.php 3. «Парсинг XML в JavaScript на примере XML-погоды от gismeteo.ru». Вячеслав Гринин http://easy4web.ru/?p=393 Документация и литература: 1. Школы консорциума W3C. Школа XSL http://xml.nsu.ru/xsl/xsl_home.xml 2. Леонов Игорь Васильевич. XML и XSLT в примерах для начинающих http://www.citforum.ru/internet/xmlxslt/xmlxslt.shtml, http://www.codenet.ru/webmast/xml/xslt/ 3. Язык преобразований XSL (XSLT). Версия 1.0. Рекомендация W3C от 16 ноября 1999. http://www.citforum.ru/internet/xslt/index.shtml, http://www.codenet.ru/webmast/xml/xslt/w3c.php 4. Владимир Шрайбман. Реализация XSL-преобразований при разработке сайтов с XML-наполнением страниц. http://www.citforum.ru/internet/xml/xsl_preobrazovaniy/ XPath Язык XML Path (XPath) является набором синтаксических и семантических правил для ссылок на части XML-документов. XPath предназначен для использования другими спецификациями, такими как XSL Transformations (XSLT) и XML Pointer Language (XPointer). Выражения XPath идентифицируют набор элементов в XML-документе. Этот набор элементов содержит ноль или более элементов. Например, выражение XPath /Library, из Пример 16, идентифицирует один-единственный элемент – корневой элемент Library. Выражение XPath /Library/Book идентифицирует все элементы Book в XML-документе. В XSLT значения атрибутов select являются выражениями XPath. XPath использует нотацию с прямой наклонной чертой (/), аналогичную обозначению полного имени файла, содержащего путь – список папок, в Windows. Допустимые выражения XPath могут включать в себя условные выражения – предикат, определяющие правила фильтрации. Предикаты содержат логические выражения, которые проверяются для каждого элемента, идентифицированного выражением XPath. Если значение условного выражения – истина, элемент допускается к обработке; иначе элемент пропускается. В последнем варианте XSL-преобразования (файл «пример 16-5.xsl») из раздела 7.1.4 использован предикат: Library/Book[dc:creator/vCard:N/vCard:Family='Пушкин'] который идентифицирует только те элементы Book в которых элемент Family – фамилия автора – Пушкин. Выражения XPath могут ссылаться на атрибуты так же, как и на элементы в XML-документе. При ссылке на атрибут используется символ @. Например, следующее выражение XPath идентифицирует элементы dc:description, в которых атрибуты xml:lang содержат значение: dc:description/[@xml:lang=”ru”] XPath также предоставляет набор функций, которые могут быть полезны при формировании предиатов. Выражение Xpath, приведенное ниже, идентифицирует элемент dc:subject содержащий слово проза: contains(dc:subject,'проза')
|