XSLT - Ứng dụng 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 các chương 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樣 thức 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 có hiệu quả tốt, nhưng không phải lúc nào việc bao gồm tham chiếu bảng樣 thức trong tệp XML cũng là điều hài lòng (ví dụ, phương pháp này không hoạt động trong trình duyệt không thể nhận dạng 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樣 thức 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à để làm cho việc chuyển đổi từ định dạng này sang định dạng khác trở nên có thể, đồng thời hỗ trợ nhiều loại trình duyệt và nhu cầu của người dùng khác nhau.

Việc chuyển đổi XSLT trên đầu 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 của nó trong thị trường trình duyệt cụ thể (văn bản nổi, máy in mạng, thiết bị thính giác, v.v.).

Tệp XML và tệp XSL

Xin hãy xem tài liệu XML này đã đượ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à mẫu 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 có nghĩa là, tệp XML có thể được chuyển đổi bằng nhiề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 client:

<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ừ khóa của chúng tôi:Hướng dẫn JavaScript》。

Mã đoạn đầu tiên tạo ra một đối tượng bộ phân tích XML của Microsoft, sau đó nạp tệp XML vào bộ nhớ. Mã đoạn thứ hai tạo ra một đối tượng bộ phân tích khác, sau đó nạp tệp XSL vào bộ nhớ. Đoạn mã 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 hoạt động của nó trong IE