XSLT - da yin
- 上一页 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"?> <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>
kuma da na XSL na style:
<?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 تبدیل میکند:
<% '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)) %>
تذکر:اگر شما نمیدانید که چگونه ASP بنویسید، میتوانید به کتابخانه ما آموزشی خود را ادامه دهیدASP تاویری》
第一段代码创建了微软的 XML 解析器的一个实例,然后把 XML 文件载入了内存。第二段代码创建了解析器的另一个实例,然后把这个 XSL 文件载入了内存。最后一行代码使用 XSL 文档转换了 XML 文档,并把结果作为 XHTML 发送到您的浏览器。任务完成!
- 上一页 XSLT 在客户端
- 下一页 XSLT 编辑 XML