XSLT - บนเซิร์ฟเวอร์
- 上一頁 XSLT 在客戶端
- 下一頁 XSLT 編輯 XML
由于并非所有的浏览器都支持 XSLT,另一种解决方案是在服务器上完成 XML 至 XHTML 的转化。
跨浏览器解决方案
在前面的章节,我们讲解过如何在浏览器中使用 XSLT 来完成 XML 到 XHTML 的转化。我们创建了一段使用 XML 解析器来进行转化的 JavaScript。JavaScript 解决方案无法工作于没有 XML 解析器的浏览器。为了让 XML 数据适用于任何类型的浏览器,我们必须在服务器上对 XML 文档进行转换,然后将其作为 XHMTL 发送到浏览器。
这是 XSLT 的另一个优点。XSLT 的设计目标之一是使数据在服务器上从一种格式转换到另一种格式成为可能,并向所有类型的浏览器返回可读的数据。
XML 文件和 XSL 文件
请看这个在前面的章节已展示过的 XML 文档:
<?xml version="1.0" encoding="ISO-8859-1"?>. . . Empire Burlesque Bob Dylan USA Columbia 10.90 1985
以及附随的 XSL 样式表:
<?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>
โปรดติดตามว่าไฟล์ XML นี้ไม่มีการอ้างอิงไฟล์ XSL
ความสำคัญ:ประโยคดังกล่าวหมายความว่า ไฟล์ XML สามารถใช้ XSL ซีลลิ่งแบบต่างๆ มาใช้เพื่อการเปลี่ยนแปลง
การเปลี่ยน XML ไฟล์เป็น XHTML บนเซิร์ฟเวอร์
นี่คือรหัสแห้งที่บันทึกการเปลี่ยน XML ไฟล์เป็น XHTML บนเซิร์ฟเวอร์:
<% 'บรรทัด XML set xml = Server.CreateObject("Microsoft.XMLDOM") xml.async = false xml.load(Server.MapPath("cdcatalog.xml")) 'บรรทัด XSL set xsl = Server.CreateObject("Microsoft.XMLDOM") xsl.async = false xsl.load(Server.MapPath("cdcatalog.xsl")) 'บวกไฟล์ Response.Write(xml.transformNode(xsl)) %>
คำเตือน:ถ้าคุณไม่ทราบว่าจะเขียน ASP คุณสามารถเรียนรู้จากเราในหนังสือเรียนของเราที่ชื่อว่าASP คำสั่งศึกษา》
第一段代碼創建了微軟的 XML 解析器的一個實例,然後把 XML 文件載入了記憶體。第二段代碼創建了解析器的另一個實例,然後把這個 XSL 文件載入了記憶體。最後一行代碼使用 XSL 文件轉換了 XML 文件,并把結果作為 XHTML 發送到您的瀏覽器。任務完成!
- 上一頁 XSLT 在客戶端
- 下一頁 XSLT 編輯 XML