Книга: XSLT
XSLT и JavaScript в Internet Explorer
XSLT и JavaScript в Internet Explorer
Любите вы Microsoft или нет, нельзя отрицать тот факт, что эта фирма включает в Internet Explorer все больше средств поддержки XSLT (дополнительную информацию можно найти по адресу http://msdn.microsoft.com/xml/general/xmlparser.asp), и поэтому работа с браузером заслуживает нашего внимания. В главе 1 я представил пример создания преобразований XSLT в Internet Explorer при помощи JavaScript, и здесь мы рассмотрим этот пример подробнее. Как вы помните (см. главу 2), IE версии 5.5 и младше может осуществлять настоящие преобразования XSLT, если они реализованы на JavaScript (новый, только что вышедший IE 6.0 может разбирать непосредственно синтаксис XSLT просто путем просмотра XML-документов).
В этом случае я, пользуясь 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>
<DIV>
</DIV>
</BODY>
</HTML>
Эти результаты показаны на рис. 10.1.
Рис. 10.1. Использование JavaScript для преобразования документа
- XSLT и JavaScript в Internet Explorer
- Обработка ошибок разбора
- Internet Explorer и динамические стили
- Internet Explorer и участки данных XML
- Вызов Java непосредственно из процессоров XSLT
- Работа с API XSLT для Java
- Взаимодействие Xalan с Java
- Взаимодействие Saxon с Java
- Взаимодействие процессора XSLT Oracle с Java
- Взаимодействие XT с Java
- Преобразование XML в реляционную базу данных
- Применение XSLT с активными серверными страницами
- Применение XSLT с Java Server Pages
- Применение XSLT с сервлетами Java
- Применение XSLT с сервлетами Java
- Работа с XSLT и JavaScript в Internet Explorer
- Internet Explorer
- Советы по JavaScript
- Верстак JavaScript
- 11.1. Подмножества JavaScript
- Глава 10 Работа с API процессоров XSLT
- Что нужно для XSLT-преобразования
- Глава 1 Основы XSLT
- Internet Explorer и динамические стили
- Использование отдельных процессоров XSLT
- Internet Service Providers who use assigned IP addresses