Читать онлайн книгу «XSLT».
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANETS">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</TR>
</xsl:template>
<xsl:template match="MASS">
<xsl:value-of select="."/>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="RADIUS">
<xsl:value-of select="."/>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="DAY">
<xsl:value-of select="."/>
<xsl:value-of select="@UNITS"/>
</xsl:template>
</xsl:stylesheet>
Теперь можно непосредственно открыть planets.xml в Internet Explorer, как видно на рис. 1.3.
Рис. 1.3. Осуществление XSLT-преобразования в Internet Explorer
Хотя таким образом при помощи Internet Explorer можно работать с XSLT, при этом необходимо так изменять таблицу стилей, чтобы она удовлетворяла требованиям Internet Explorer. Поскольку Internet Explorer в текущий момент фактически не поддерживает XSLT, открывая документы XML при навигации, я не буду использовать этот браузер для XSLT-преобразований в книге (кроме специально оговоренных случаев). Для осуществления преобразований я стану использовать процессоры XSLT, такие как Saxon и Xalan, а если результаты будут представляться в формате HTML, то мы будем просматривать их в Internet Explorer.
Интересно отметить, что существует способ провести настоящие XSLT-преобразования в Internet Explorer, не делая никаких специальных изменений в документах XML или XSL, даже не загружая и не устанавливая последний разборщик MSXML (как обсуждается в главе 2) — однако при этом нужно не осуществлять навигацию XML-документа, а обращаться к встроенному в Internet Explorer процессору XSLT, MSXML3, напрямую при помощи JavaScript.
Работа с XSLT и JavaScript в Internet Explorer
Процессор XSLT в Internet Explorer 5.5 является частью разборщика XML MSXML3, и если вы работаете напрямую с MSXML3 при помощи JavaScript, нет необходимости изменять исходные файлы
planets.xml
и
planets.xsl
(листинги 1.1 и 1.2), как мы это сделали в предыдущем разделе. Мы посмотрим, как это работает в главе 10, а здесь приведена web-страница
xslt.html
, которая при помощи JavaScript и MSXML3 осуществляет преобразование
planets.xml
с использованием
planets.xsl
и отображает результаты (заметьте, что вы можете модифицировать этот документ для использования ваших собственных документов XML и XSLT, не прибегая к написанию кода на JavaScript: достаточно заменить имена
planets.xml
и
planets.xsl
на названия ваших документов XML и XSL) (листинг 1.5).
Листинг 1.5. Преобразование в Internet Explorer при помощи JavaScript
<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) {