XSLT - Trên máy chủ
Để cung cấp dữ liệu XML cho tất cả các loại trình duyệt, chúng tôi có thể chuyển đổi tài liệu XML trên MÁY CHỦ và gửi nó trở lại trình duyệt dưới dạng XHTML.
Một giải pháp trình duyệt chéo
Trong chương trước, chúng tôi đã giải thích cách XSLT có thể được sử dụng để chuyển đổi một tài liệu từ XML sang XHTML trong trình duyệt. Chúng tôi đã sử dụng JavaScript và trình phân tích cú pháp XML để chuyển đổi. Tuy nhiên, điều này sẽ không hoạt động trong trình duyệt không có trình phân tích cú pháp XML.Để cung cấp dữ liệu XML cho tất cả các loại trình duyệt, chúng tôi có thể chuyển đổi tài liệu XML trên máy chủ và gửi lại trình duyệt dưới dạng XHTML.
Đó là một vẻ đẹp khác của XSLT. Một trong những mục tiêu thiết kế cho XSLT là làm cho nó có thể chuyển đổi dữ liệu từ định dạng này sang định dạng khác trên máy chủ, trả lại 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 XSLT
Nhìn vào tài liệu XML mà bạn đã thấy trong các chương trước:
<?xml version="1.0" encoding="UTF-8"?>
<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>
Và biểu định kiểu XSL đi kèm:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-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>
</xsl:template>
</xsl:stylesheet>
Lưu ý rằng tệp XML không có tham chiếu đến tệp XSL.
QUAN TRỌNG: Câu trên chỉ ra rằng một tệp XML có thể được chuyển đổi bằng cách sử dụng nhiều biểu định kiểu XSL khác nhau.
Mã PHP: Chuyển đổi XML sang XHTML trên Máy chủ
Đây là mã nguồn PHP cần thiết để chuyển đổi tệp XML thành XHTML trên máy chủ:
<?php
// Load XML file
$xml = new DOMDocument;
$xml->load('cdcatalog.xml');
// Load XSL file
$xsl = new DOMDocument;
$xsl->load('cdcatalog.xsl');
//
Configure the transformer
$proc = new XSLTProcessor;
// Attach the xsl
rules
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
Mẹo: Nếu bạn không biết cách viết PHP, hãy nghiên cứu hướng dẫn PHP của chúng tôi .
Xem cách nó hoạt động với PHP .
Mã ASP: Chuyển đổi XML sang XHTML trên Máy chủ
Đây là mã nguồn ASP cần thiết để chuyển đổi tệp XML thành XHTML trên máy chủ:
<%
'Load XML file
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL file
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
Xem cách nó hoạt động với ASP .