XSLT trên máy khách

Nếu trình duyệt của bạn hỗ trợ XSLT, thì nó có thể được sử dụng để chuyển đổi tài liệu thành XHTML.

Giải pháp JavaScript

Trong phần trước, chúng tôi đã giải thích cách sử dụng XSLT để chuyển đổi một tệp XML thành XHTML. Chúng tôi đã hoàn thành công việc này bằng cách: thêm bảng định dạng XSL vào tệp XML và hoàn thành việc chuyển đổi thông qua trình duyệt.

Mặc dù phương pháp này rất hiệu quả, nhưng không phải lúc nào việc bao gồm tham chiếu bảng định dạng trong tệp XML cũng được coi là hài lòng (ví dụ, phương pháp này không hoạt động nếu trình duyệt không nhận diện được XSLT).

Cách thông dụng hơn là sử dụng JavaScript để hoàn thành việc chuyển đổi.

Bằng cách sử dụng JavaScript, chúng ta có thể:

  • Thực hiện thử nghiệm xác nhận trình duyệt
  • Sử dụng các bảng định dạng khác nhau dựa trên nhu cầu của trình duyệt và người dùng

Đó chính là sức hút của XSLT! Một trong những mục đích thiết kế của XSLT là để chuyển đổi định dạng này sang định dạng khác, đồng thời hỗ trợ các loại trình duyệt khác nhau và nhu cầu của người dùng khác nhau.

Việc chuyển đổi XSLT trên trình duyệt sẽ trở thành một trong những nhiệm vụ chính mà trình duyệt sẽ thực hiện trong tương lai, đồng thời chúng ta cũng sẽ thấy sự tăng trưởng trong thị trường trình duyệt cụ thể (văn bản braille, máy in mạng, thiết bị thính giác, v.v.).

Tệp XML và tệp XSL

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

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

Matter quan trọng:Câu trên có nghĩa là, 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 trong trình duyệt

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

<html>
<body>
<script type="text/javascript">
// Load XML 
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cdcatalog.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cdcatalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>

Lưu ý:Nếu bạn không biết cách viết JavaScript, hãy học tài liệu của chúng tôi《Hướng dẫn JavaScript》。

Mã đầu tiên tạo ra một instance 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 instance phân tích khác, sau đó tải tệp XSL vào bộ nhớ. Dòng cuối cùng sử dụng tài liệu XSL để chuyển đổi tài liệu XML và hiển thị kết quả dưới dạng XHTML trong trình duyệt. Công việc hoàn thành!

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