论坛首页 入门技术论坛

【原创】一个XSL的例子

浏览 2182 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-01  

一直耳闻xsl,可是一直没有使用过,这次由于项目的需要,只好用心好好研究一下,成果如下:
    首先,要纠正一下,xsl并不是一种编程语言,它只是一种用来转换xml的语言,这个有点类似我们的Spring的配置文件,是通过对xml语言的解析,来达到我们需要的目的,下面的例子,可以帮助你更好的理解这一点。
    环境,在提到一个新的语言,我们一定会有两个疑问,一个是,这个语言的编辑器是什么,这个语言的运行的环境又是什么?对于xsl来讲,它的编辑器就是所有可以编辑xml的编辑器,例如记事本,editplus等等,运行的环境呢,这个更简单,因为在IE5.0以上的版本,都加入了xsl的解析器。好啦,环境,编辑器都解决,下面来介绍一下什么是xsl。
    首先要清楚一个问题,我们在访问的时候,其实,访问的是一个xml文件,那么这个文件的解析呢,是交给xsl来完成的,在需要被解析的xml中,会有这个元素告诉浏览器(解析器),解析我的xsl是什么?

1 <?xml-stylesheet type="text/xsl" href="hello.xsl"?>

这个href就是告诉浏览器,解析我的xsl是什么,那么xsl的内容是什么呢

 1 <?xml version="1.0" encoding="iso-8859-1"?>
 2 
 3 <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 4 
 5 <xsl:template match="/">
 6 
 7 <html>
 8 
 9 <head>
10 
11 <title>First XSLT example</title>
12 
13 </head>
14 
15 <body>
16 
17 <p><xsl:value-of select="greeting"/></p>
18 
19 </body>
20 
21 </html>
22 
23 </xsl:template>
24 
25 </xsl:stylesheet>

看出来了吗,xsl是以<xsl:stylesheet>标记作为开始和结束的内容,解析的模板为<xsl:template>
模板里面的内容是不是很熟悉,看到了吧,这个是html的元素,想到了如果用到我们传统的j2EE结构中,该如何与后台进行交互了吗,对了,就是解析这个核心的xml,好啦,这个是后话,现在将整个代码贴出来,运行下,看看效果吧
hello.xml

1 <?xml version="1.0" encoding="iso-8859-1"?>
2 
3 <?xml-stylesheet type="text/xsl" href="hello.xsl"?>
4 
5 <greeting>Hello, world!</greeting>

hello.xsl

 1 <?xml version="1.0" encoding="iso-8859-1"?>
 2 
 3 <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 4 
 5 <xsl:template match="/">
 6 
 7 <html>
 8 
 9 <head>
10 
11 <title>First XSLT example</title>
12 
13 </head>
14 
15 <body>
16 
17 <p><xsl:value-of select="greeting"/></p>
18 
19 </body>
20 
21 </html>
22 
23 </xsl:template>
24 
25 </xsl:stylesheet>
26 
27 

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics