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 quá trình 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 các chương trước, chúng ta đã giải thích cách sử dụng XSLT để hoàn thành quá trình chuyển đổi từ XML sang XHTML trong trình duyệt. Chúng ta đã tạo ra một đoạn mã JavaScript để giải quyết vấn đề này. Giải pháp JavaScript không hoạt động trên các trình duyệt không có bộ phân tích XML. Để dữ liệu XML có thể hoạt động trên tất cả các loại trình duyệt, chúng ta phải chuyển đổi tài liệu 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 mục tiêu 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ể, và cung cấp dữ liệu đọc được cho tất cả các loại trình duyệt.

Tệp XML và tệp XSL

Xin xem tài liệu XML đã được trình bày trong các 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à 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.

Vấn đề quan trọng:Câu trên cho thấy tệp XML có thể được chuyển đổi bằng nhiều bảng định dạng 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ủ:

<%
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
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 sách của chúng tôi:Hướng dẫn ASP>

Mã đoạn đầu tiên tạo ra một ví dụ của bộ phân tích XML của Microsoft, sau đó tải tệp XML vào bộ nhớ. Mã đoạn thứ hai tạo ra một ví dụ khác của bộ phân tích, sau đó tải tệp XSL vào bộ nhớ. Dòng cuối cùng sử dụng tệp XSL để chuyển đổi tệp 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.