JavaScript解决方案
XSL是如何将XML转换成HTML文件。方法就是在XML文档的头部加入一个XSL样式表信息,然后让浏览器执行转换过程。
这种方法在大部分情况下都做得很好,但是在不支持XML的浏览器中就无法正确显示了。
一个更好的更全面的解决方案是使用Javascript来实现XML到HTML的转换。但是使用JavaScript必须得到以下功能支持:
a.允许Javascript代替浏览器进行细节检测;
b.根据不同的需要和不同的浏览器使用不同的样式表。
对于XSL来说这是完全可行的。设计XSL的目标之一就是允许将一种格式转换成另一种格式,支持不同的浏览器,支持不同的用户需求。未来的浏览器的重要任务就是在客户端执行XSL的转换工作。
2.一个具体的实例
下面是我们上面提到的一个XML文档(cd_catalog.xml)例子的部分代码:
<?xml version="1.0" encoding="ISO8859-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>
.
.
.
下面是完整的XSL文件(cd_catalog.xsl):
<?xml version=';';1.0';';?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>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样式表,还没有被转换成HTML文件。
下面是用JavaSript来实现最后转换的HTML代码:
<html>
<body>
<script language="javascript">
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cd_catalog.xml")
// Load the XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cd_catalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>
第一段代码建立一个Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二段代码建立另外一个对象并导入XSL文档;最后一行代码将XML文档用XSL文档转换,并将结果输出到HTML文件中。
使用xsl显示xml文档
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="st.xsl"?> <students> <student> <name>August</name> <tele>91%</tele> <dizhi>9%</dizhi> </student> <student> <name>zhangjie</name> <tele>58469523</tele> <dizhi>beijinglu12hao</dizhi> </student> </students> 上面是xml语言,要在网页中显示,首先要用xsl编辑它的样式。下面是xsl的代码。 <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> //此链接指向了官方的 W3C XSLT 命名空间 注意大小写 <xsl:template match="/"> <html> <body> <h2>网页陶吧访问统计</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Month</th> <th align="left">% of IE visitor</th> <th align="left">% of NC visitor</th> </tr> <xsl:for-each select="students/student"> <tr> <td> <xsl:value-of select="name"/> </td> <td> <xsl:value-of select="tele"/> </td> <td> <xsl:value-of select="dizhi"/> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> 保存为st.xsl **下面是转载他人的学习心得 很简明很实用推荐大家一起学习** 这是我今天学习的时候遇到的另一个问题,做图像超链接要把链接地址放到<a>的href属性中去,可是这就是在标签中套标签,是不可以的,查了《Web编程实做教程》,才知道正确的解决方案,现在与大家分享。 此段代码运行需要两张图片:a.gif和b.gif。 my.xml 以下内容为程序代码: <?xml version="1.0" encoding="GB2312"?> <?xml-stylesheet type="text/xsl" href="mystyle.xsl"?> <Books> <Book ID="a001"> <Name>网络指南</Name> <Photo>a.gif</Photo> <Homepage>http://www.a.com</Homepage> </Book> <Book ID="a002"> <Name>局域网技术</Name> <Photo>b.gif</Photo> <Homepage>http://www.b.com</Homepage> </Book> </Books> mystyle.xsl 以下内容为程序代码: <?xml version="1.0" encoding="GB2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="Books/Book"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="./Homepage"/> </xsl:attribute> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:value-of select="./Photo"/> </xsl:attribute> </xsl:element> </xsl:element> <br/> </xsl:template> </xsl:stylesheet> 在浏览器上的显示结果: 竖向平列显示两个图片。 说明: 使用超链接,需要借助<xsl:element>和<xsl:attribute>两个标签,基本使用方法就可以参照上边的例子,在深奥一点的,如果你想出来了,记得要和大家分享哟。 长见识,嘿嘿,这个可是真是第一次看见。 {Homepage} <xsl:value-of select="Homepage"/> 两个在任何时候都是等价的吧? 你上边的代码和我原来的效果有点小差别,我帮你完善一下: mystyle.xsl <?xml version="1.0" encoding="GB2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="Books/Book"> <a href="{Homepage}"> <img src="{Photo}"/> </a> </xsl:template> </xsl:stylesheet>
发表评论
-
nginx代理IIS轻松实现支持JSP,PHP,ASP平台
2012-05-12 21:16 1626通过使用高效代理服务器nginx代理IIS轻松实现支持JSP, ... -
OpenSessionInViewFilter的使用
2011-06-22 11:34 735一、作用 Spring为我们解决Hibernate的Sess ... -
tomcat服务器使用url rewrite1
2011-05-19 18:25 1481让tomcat服务器使用url rewrite1. 第 ... -
CountDownLatch闭锁详解
2011-05-09 10:29 1321闭锁(Latch) 闭锁(Latch):一种同步方法,可以延 ... -
memcache/memcached/memcachedb 配置、安装
2011-05-05 15:44 1205memcache/memcached/memcachedb ... -
jquery.treeview使用
2011-03-25 18:31 1535这几天项目中要用到树型结构,正好项目中用到了JQuery,所以 ... -
集群的可扩展性及其分布式体系结构
2011-03-17 14:54 1107常见的平衡算法 一般 ... -
strust2防止重复提交
2011-03-15 10:05 1130在请求表单中添加<s:token></s:t ... -
源码中没有任何错误目录中还存在红叉
2011-02-26 17:04 773查看.classpath文件。修改正确配置!lib与src -
长连接与短连接
2011-01-04 15:44 1116长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送 ... -
带“+”号的参数值通过url传递,后台取不到正确值
2010-11-29 15:19 2485带“+”号的参数值通过url传递,后台取不到正确值 问题是这样 ... -
JCom的使用
2010-11-08 11:15 2777JCom可以支持打印,支持生成word,生成Excel,并且可 ... -
利用java操作Excel文件
2010-10-28 16:45 752利用java操作Excel文件 很久以来都想 ... -
web.xml详解
2010-10-22 09:18 674部署描述符实际上是一个XML文件,包含了很多描述servlet ... -
jsvalidation表单验证框架使用相关问题
2010-10-05 18:57 11351、如果验证框架没有起作用,就先把验证框架的js文件、x ... -
java中调用c(c++)写的dll 文件的实现及步骤
2010-09-08 10:08 1821JNI使用技巧点滴本文为 ... -
我的站点
2010-01-09 10:43 0www.51sj.com 我要设计 www.52sj.co ... -
Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
2009-12-18 21:31 2336说明: 在创建数据库时输入的密码,是修改系统默认的密码,以sy ... -
jdbc连接各种数据库
2009-12-18 21:08 817一、jsp连接Oracle8/8i/9i数据库(用thin模式 ... -
IOC
2009-11-02 11:36 1191介绍 IOC 作者:冰云 icecloud(AT) ...
相关推荐
通过分析和理解这个XSL文件,我们可以看到如何将XML的结构转换成HTML的树结构,并实现节点的展开与关闭功能。 总的来说,XSL转换XML为HTML树显示是一项常见的数据展示技术,它结合了XML的结构化特性,XSLT的转换...
XSLT(XSL Transformations)是XSL的一部分,它定义了转换规则,将XML数据转化为HTML或其他格式。以下是一个简单的XSL样式表(Rss.xsl)示例: ```xml <xsl:stylesheet version="1.0" xmlns:xsl=...
在实验 2 中,我们将学习如何使用 XSL 处理器处理 XML 文件和 XSL 文件,转换输出 HTML 文件。实验步骤如下: 1. 首先,创建一个 XML 文件,例如: ``` <?xml version="1.0" encoding="utf-8"?> <ListTitle>...
最后,我们将使用 JavaScript 语言来将 XML 文档和 XSLT 文件加载到 HTML 文档中,并将其转换成 HTML 文档。 <html> 使用 XSLT 实现 XML 文档到 HTML 文档的转换 <script language="JavaScript"> function ...
在“xsl解析xml生成表格”这一场景中,我们需要创建一个XSL文件(如test.xsl),在其中编写XSLT指令,将XML数据转换成HTML表格。例如,我们可以使用`<xsl:for-each>`循环遍历XML文档中的元素,然后使用`<table>`, `...
下面是一段JavaScript代码,展示了如何在浏览器端加载XML和XSL文件,并使用XSL将XML转换为HTML: ```html <html> <script language="javascript"> // 加载XML文件 var xml = new ActiveXObject("Microsoft.XMLDOM...
接着,我们需要一个XSL文件来定义如何将XML数据转换为HTML结构,以便JavaScript可以操作。例如,我们可以创建如下XSL样式表: ```xsl <xsl:stylesheet version="1.0" xmlns:xsl=...
XSLT(XSL转换)允许我们定义一套规则,将XML数据转换成其他格式,如HTML、PDF或新的XML文档。以下是一个简单的XSL转换示例,将XML数据转换为HTML表格: ```xsl <xsl:stylesheet version="1.0" xmlns:xsl=...
`xmlparmseither.html`可能是一个HTML页面,其中包含上述JavaScript代码,用于加载XML和XSL文件,执行转换,并将结果展示在页面上。 总结起来,XSL、XPath和JavaScript的结合使得我们可以动态地处理XML数据,通过...
2. XSLT和XSL-FO:讲解如何编写XSL转换规则,以及如何将XML转换为更易读的HTML或PDF文档。 3. HTML5新特性:如语义化标签、表单控件、多媒体元素、离线存储等。 4. CSS3详解:包括选择器、盒模型、布局方式(如...
总结,XML到HTML的转换是数据处理中的常见需求,通过XSLT、JavaScript库或DOM操作等方法,我们可以将结构化的XML数据转化为适合网页展示的HTML格式。了解这两种语言的特点和转换机制,对于Web开发人员来说是至关重要...
例如,一个常见的应用场景是,服务器端生成XML数据,客户端通过JavaScript使用XMLHttpRequest对象获取XML文件,接着使用XSLT对XML进行转换,生成HTML片段,最后将这些HTML插入到网页的适当位置,实现动态渲染。...
XSLT(XSL Transformations)是XSL的一部分,用于将XML文档转换成其他格式,如HTML、PDF或纯文本。XSLT通过模板匹配和转换规则实现这一功能,为数据的呈现提供了灵活性。 Web编程实作则涵盖了上述技术的实际应用。...
- 编写XSL样式表,定义如何将XML转换为HTML,包括如何显示分页链接和内容。 - 在AJAX请求成功后,使用JavaScript的`XSLTProcessor`或类似的库进行转换。 - 将转换后的HTML插入到页面的DOM树中,完成页面的局部...
"zoo.xsl"文件可以定义如何将"zoo.xml"中的数据转换成HTML或其他格式,例如,将动物列表转化为带有颜色和样式的表格。XSLT(XSL Transformation)是实现这一过程的引擎,它可以按照XSL文件的指令重新排列和格式化XML...
标题“用XSL将ExtJS封装成标签”指的是利用XSL(XML Stylesheet Language)技术,将ExtJS库中的组件和功能转化为自定义HTML标签,以便于在网页开发中更方便地使用和管理ExtJS代码。这个过程可以提高代码的可读性、可...
XSLT用于转换XML文档,将XML数据转换成HTML、PDF或其他格式,常用于数据交换和数据呈现。XPath则是用来在XML文档中查找信息的语言,它提供了简洁的方式选取XML节点,支持对节点集合进行运算和筛选。 这个"XML HTML ...
然后,使用XSLT文件定义转换规则,将XML转换成HTML。转换后的HTML可以被浏览器解析并显示出来,提供了直观的数据视图。此外,JavaScript代码会嵌入到HTML中,或者作为外部JS文件引用,以处理用户的交互行为,如点击...
总结来说,“xsl递归解析xml”是将XML数据通过XSLT转换成其他格式的过程,其中递归模板是处理XML树形结构的关键。这个过程可以与JavaScript和HTML结合,实现动态交互式的数据展示。了解并掌握这一技术,对于开发处理...