XSLT - Trên máy chủ

Do không phải tất cả các trình duyệt đều hỗ trợ XSLT, một giải pháp khác là hoàn thành việc chuyển đổi từ XML sang XHTML trên máy chủ.

Giải pháp hỗ trợ nhiều trình duyệt

Trong chương trước, chúng ta đã giải thích cách sử dụng XSLT để hoàn thành việc chuyển đổi từ XML sang XHTML trong trình duyệt. Chúng ta đã tạo ra một đoạn mã JavaScript sử dụng bộ giải mã XML để thực hiện chuyển đổi. Giải pháp JavaScript không thể hoạt động trên các trình duyệt không có bộ giải mã XML. Để dữ liệu XML có thể sử dụng được trên tất cả các loại trình duyệt, chúng ta phải chuyển đổi tệp XML trên máy chủ và gửi nó dưới dạng XHMTL đến trình duyệt.

Đây là một trong những ưu điểm của XSLT. Mục tiêu thiết kế một trong những của XSLT là làm cho việc chuyển đổi dữ liệu từ định dạng này sang định dạng khác trên máy chủ trở nên có thể thực hiện và trả về dữ liệu có thể đọc được cho tất cả các loại trình duyệt.

Tệp XML và tệp XSL

Xem tệp XML này đã được trình bày trong chương trước:

<?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>

Xem tệp XML này.

và các bảng định dạng XSL kèm theo:

<?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>My CD Collection</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>

Xem tệp XSL này.

Lưu ý rằng tệp XML này không chứa tham chiếu đến tệp XSL.

Lưu ý quan trọng:Câu trên cho thấy tệp XML có thể được chuyển đổi bằng nhiều biểu mẫu XSL khác nhau.

Chuyển đổi XML thành XHTML trên máy chủ

Đây là mã nguồn chuyển đổi tệp XML thành XHTML trên máy chủ:

<%
Tải XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
Tải XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
Chuyển đổi tệp
Response.Write(xml.transformNode(xsl))
%>

Lưu ý:Nếu bạn không biết cách viết ASP, bạn có thể học từASP Hướng dẫn》。

Mã nguồn đoạn đầu tiên tạo ra một đối tượng phân tích XML của Microsoft và sau đó tải tệp XML vào bộ nhớ. Mã nguồn đoạn thứ hai tạo ra một đối tượng phân tích khác và sau đó tải tệp XSL vào bộ nhớ. Dòng mã cuối cùng sử dụng tài liệu XSL để chuyển đổi tài liệu XML và gửi kết quả dưới dạng XHTML đến trình duyệt của bạn. Công việc hoàn thành!

Xin xem cách nó hoạt động.