XSL简明教程(3)在客户端的实现

2837zlj

2837zlj

2016-02-19 18:36

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的XSL简明教程(3)在客户端的实现,过去的都会过去,迎接崭新的开始,释放更美好的自己。

三. XSL--在客户端的实现

1.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

TITLEEmpire Burlesque/TITLE

ARTISTBob Dylan/ARTIST

COUNTRYUSA/COUNTRY

COMPANYColumbia/COMPANY

PRICE10.90/PRICE

YEAR1985/YEAR

/CD

下面是完整的XSL文件(cd_catalog.xsl):

?xml version='1.0'?

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"

xsl:template match="/"

html

body

table border="2" bgcolor="yellow"

tr

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

thTitle/th

thArtist/th

/tr

xsl:for-each select="CATALOG/CD"

tr

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

tdxsl:value-of select="TITLE"//td

tdxsl: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

上面代码中使用了Javascript,如果你不知道如何写JavaScript,您最好专门学习一下。

第一段代码建立一个Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二段代码建立另外一个对象并导入XSL文档;最后一行代码将XML文档用XSL文档转换,并将结果输出到HTML文件中。

展开更多 50%)
分享

猜你喜欢

XSL简明教程(3)在客户端的实现

Web开发
XSL简明教程(3)在客户端的实现

XSL简明教程(4)在服务器端的实现

Web开发
XSL简明教程(4)在服务器端的实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XSL简明教程(2)XSL转换

Web开发
XSL简明教程(2)XSL转换

XSL简明教程(5)XSL的索引

Web开发
XSL简明教程(5)XSL的索引

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

XSL简明教程(7)XSL 的控制语句

Web开发
XSL简明教程(7)XSL 的控制语句

XSL简明教程(1)XSL入门

Web开发
XSL简明教程(1)XSL入门

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

C++ 类的静态成员(static)

C++ 类的静态成员(static)

用XML数据岛解决用户界面问题

用XML数据岛解决用户界面问题
下拉加载更多内容 ↓