XSLT - на сервере

Поскольку не все браузеры поддерживают XSLT, другим решением является преобразование XML в XHTML на сервере.

Кросс-браузерное решение

В предыдущих главах мы рассказали, как использовать XSLT в браузерах для преобразования XML в XHTML. Мы создали JavaScript для преобразования с использованием XML парсера. Решение на JavaScript не работает в браузерах без XML парсера. Чтобы сделать XML данные подходящими для всех типов браузеров,我们必须 преобразовать XML документ на сервере и отправить его в браузер в виде XHMTL.

Это еще одно преимущество XSLT. Одной из целей дизайна XSLT является возможность преобразования данных из одного формата в другой на сервере и предоставление читаемой информации для всех типов браузеров.

XML и XSL файлы

Смотрите этот XML документ, который был показан в предыдущих главах:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
.
.
.
</catalog>

Просмотрите этот XML файл.

и伴随的 XSL стилизация:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:template match="/">
  <html>
  <body>
    <h2>Моя коллекция компакт-дисков</h2> 
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Title</th> 
        <th align="left">Artist</th> 
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title" /></td>
        <td><xsl:value-of select="artist" /></td>
      </tr>
      </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Просмотрите этот файл XSL.

Обратите внимание, что этот файл XML не содержит ссылок на файлы XSL.

Важно:Это означает, что файл XML можно преобразовать с использованием нескольких различных таблиц стилей XSL.

Преобразование XML в XHTML на сервере

Это исходный код на сервере для преобразования файла XML в XHTML:

<%
'Загрузить XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Загрузить XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Преобразовать файл
Response.Write(xml.transformNode(xsl))
%>

Совет:Если вы не знаете, как пишется ASP, вы можете изучить нашеASP Учебник

Первый код создает экземпляр XML-парсера Microsoft и загружает XML-файл в память. Второй код создает другой экземпляр парсера и загружает XSL-файл в память. Последняя строка кода использует XSL-документ для преобразования XML-документа и отправляет результат в ваш браузер в виде XHTML. Задача выполнена!

Посмотрите, как это работает.