Чтение онлайн

ЖАНРЫ

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

Шрифт:

</xslt:stylesheet>

 </xsl:template>

 .

 .

 .

</xsl:stylesheet>

Здесь я использую пространство имен "http://xslt" для префикса "xslt", но я смогу изменить его в выходном документе на правильное пространство имен XSLT, "http://www.w3.org/1999/XSL/Transform", воспользовавшись элементом

<xsl:namespace-alias>
:

<xsl:stylesheet version="1.1"

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

 xmlns:xslt="http://xslt">

 <xsl:template match="/">

<xslt:stylesheet version="1.1">

<xslt:template match="PLANET">

<TR>

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

<TD><xslt:applу-templates select="MASS"/></TD>

<TD><xslt:apply-templates select="RADIUS"/></TD>

<TD><xslt:apply-templates select="DAY"/></TD>

</TR>

</xslt:template>

</xslt:stylesheet>

 </xsl:template>

 <xsl:namespace-alias stylesheet-prefix="xslt" result-prefix="xsl"/>

</xsl:stylesheet>

Вот

результат. Заметьте, что здесь все еще используется префикс пространства имен «
xslt
», но это пространство имен теперь соответствует правильному пространству имен XSLT:

<?xml version="1.0" encoding="UTF-8"?>

<xslt:stylesheet

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

 <xslt:template match="PLANET">

<TR>

<TD>

<xslt:value-of select="NAME"/>

</TD>

<TD>

<xslt:apply-templates select="MASS"/>

</TD>

<TD>

<xslt:applу-templates select="RADIUS"/>

</TD>

<TD>

<xslt:apply-templates select="DAY"/>

</TD>

</TR>

 </xslt:template>

</xslt:stylesheet>

На этом глава завершается. В следующей главе мы рассмотрим, как работать с XSLT в коде.

Глава 10

Работа с API процессоров XSLT

Как вы видели на протяжении всей книги, при работе с XSLT вам не требовалось никакого программирования. Но все процессоры XSLT, с которыми мы работали до сих пор, — Xalan, Saxon, XT, Oracle и MSXML — разработаны так, что при желании к ним можно обращаться и из кода программы. Здесь мы рассмотрим, как работать с этими процессорами в прикладной программе. Можете спокойно пропустить эту главу, если вы не программист или не собираетесь им становиться. Но если вы не будете использовать возможности программного интерфейса, вы потеряете довольно много, в том числе поддержку XSLT на web-серверах.

В этой главе будет также показано, как преобразовывать XML в реляционную базу данных.

Для взаимодействия с различными прикладными программными интерфейсами (API, Application Programming Interface) процессоров XSLT я буду применять Java и JavaScript. С различными процессорами XSLT можно работать и при помощи таких языков, как С++ или Visual Basic, но до сих пор подавляющее большинство программистов выбирало Java, а язык JavaScript удобен для обработки преобразований в Internet Explorer. Кроме того, используемые вами процессоры XSLT специально разработаны для взаимодействия с Java, хотя с процессором MSXML3 можно работать из программы как с СОМ-объектом. Как я говорил, с процессором MSXML в Internet Explorer можно работать при помощи JavaScript, такой пример был показан еще в главе 1. И, как я обещал в главе 1, здесь я рассмотрю его более подробно.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ РАБОТЫ С XSLT ИЗМЕНЯЕТСЯ ОЧЕНЬ БЫСТРО!

Будьте внимательны! Программное обеспечение для работы с XSLT изменяется очень быстро, зачастую ежемесячно, поэтому ко времени, когда вы будете читать книгу, оно частично может уже устареть. Тут уж ничего не поделаешь, и вам нужно за ним следить. Все примеры в этой главе были тщательно проверены по крайней мере тремя людьми — мной и двумя техническими редакторами, работавшими независимо, и на момент написания книги все примеры работали. Если у вас что-то не заработает, проверьте, конечно, такие элементы, как путь к классам Java, но также сверьтесь и с документацией по вашему процессору XSLT на предмет возможных изменений.

XSLT и JavaScript в Internet Explorer

Любите вы Microsoft или нет, нельзя отрицать тот факт, что эта фирма включает в Internet Explorer все больше средств поддержки XSLT (дополнительную информацию можно найти по адресу, и поэтому работа с браузером заслуживает нашего внимания. В главе 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'];

Поделиться с друзьями: