XSLT学习(十)服务器上跨浏览器解决方案(解决上一章第九章的遗留问题)
2017-07-05 18:33
225 查看
由于并非所有的浏览器都支持 XSLT,另一种解决方案是在服务器上完成 XML 至 XHTML 的转化。
在前面的章节,我们讲解过如何在浏览器中使用 XSLT 来完成 XML 到 XHTML 的转化。我们创建了一段使用 XML 解析器来进行转化的 JavaScript。JavaScript 解决方案无法工作于没有 XML 解析器的浏览器。为了让 XML 数据适用于任何类型的浏览器,我们必须在服务器上对
XML 文档进行转换,然后将其作为 XHMTL 发送到浏览器。
这是 XSLT 的另一个优点。XSLT 的设计目标之一是使数据在服务器上从一种格式转换到另一种格式成为可能,并向所有类型的浏览器返回可读的数据。
请看这个在前面的章节已展示过的 XML 文档:
查看此 XML 文件。
以及附随的 XSL 样式表:
查看此 XSL 文件。
请注意,这个 XML 文件没有包含对 XSL 文件的引用。
重要事项:上面这句话表明,XML 文件可使用多个不同的 XSL 样式表来进行转换。
这是在服务器上把 XML 文件转换为 XHTML 的源代码:
提示:假如您不了解如何编写 ASP,您可以学习我们的《ASP
教程》。
第一段代码创建了微软的 XML 解析器的一个实例,然后把 XML 文件载入了内存。第二段代码创建了解析器的另一个实例,然后把这个 XSL 文件载入了内存。最后一行代码使用 XSL 文档转换了 XML 文档,并把结果作为 XHTML 发送到您的浏览器。任务完成!
请看它如何工作。
http://www.w3school.com.cn/xsl/xsl_server.asp
跨浏览器解决方案
在前面的章节,我们讲解过如何在浏览器中使用 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>
查看此 XML 文件。
以及附随的 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>
查看此 XSL 文件。
请注意,这个 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 发送到您的浏览器。任务完成!
请看它如何工作。
http://www.w3school.com.cn/xsl/xsl_server.asp
相关文章推荐
- 配置nginx反向代理服务器,解决浏览器跨域调用接口的限制问题
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)(解决不可连的问题,解决方案在最后面)
- 解决浏览器向服务器传递参数时中文乱码问题
- 问题解决笔记 -- LINUX 服务器 PHP与MYSQL中文乱码问题最终解决方案
- 解决客户端浏览器和服务器交互的编码问题详解
- 浏览器为IE9时在服务器注册window.open的问题(已解决)
- 浏览器模式调整-网站显示问题根本解决方案(Winform和CMD程序解决)
- 关于Tomcat搭建服务器需要80端口问题的解决方案以及80端口被NT KERNEL & SYSTEM ,pid4占用解决方法
- 解决ubuntu中firefox浏览器总是提示找不到服务器的问题
- 微信浏览器提交表单内汉字,服务器接收显示乱码问题的解决
- lwip1.3.2+ucosII服务器与浏览器连接问题bug解决
- 从服务器上导入解决方案后二次开发包不能正常加载的问题解决。
- 解决FC3下默认浏览器无法出来的问题
- “Visual Studio .NET 无法创建或打开应用程序。问题很可能是因为本地WEB本地服务器上没有安装所需的组件。请运行Visual Studio .NET安装程序并添加WEB开发组件“的一种解决方案
- [问题]VB通信中怎么解决1(服务器)对多(客户端)的发信息?
- dudu:www2遗留问题是否可以帮忙解决一下?
- 解决了asp.net 关于服务器版本不正确的问题
- 关于tomcat服务器优化,常遇到的一些简单问题的解决方法 (z)
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- 无法在web服务器上启动调试,问题解决