Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Semantic web.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.1 Mб
Скачать

Вставка скриптов в результирующий html-документ

При разработке XSL-преобразования можно вставлять в него практически любые элементы HTML, в том числе и блоки <script>, внутри которых можно задавать любые конструкции JavaScript, используя для этого XML-элемент CDATA:

<html>

<head>

<script language="JavaScript">

<![CDATA[

function msover(){

…}

function msout(){

…}

]]>

</script>

</head>

<body>

<div id='tagName' onmouseover='msover()' onmouseout=' msout()'>

</div>

</html>

В результате получается полноценный HTML-документ, содержащий скрипты и обращения к ним. Учитывая специфику JavaScript, в этом случае необходимо явным образом вставлять теги <html> и <head>, если это необходимо.

Обработка 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/

  1. 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,'проза')

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]