不清楚xsl是什么,我们可以通过如下对比,来理解。
|
CSS |
XSL |
定义 |
HTML样式表 |
XML样式表 |
标签 |
使用预先定义的标签,标签的意义很容易被理解 |
不使用预先定义的标签(我们可以使用任何喜欢的标签名),并且这些标签的意义并不都那么容易被理解 |
添加标签,即显示 |
<table> 元素定义表格 -并且浏览器清楚如何显示它,通过 CSS,很容易告知浏览器用特定的字体或颜色显示一个元素。 |
<table> 元素意味着一个 HTML表格,一件家具,或是别的什么东西 -浏览器不清楚如何显示它 |
XSL -不仅仅是样式表语言,XSL包括三部分:
XSLT
一种用于转换 XML文档的语言。
XPath
一种用于在 XML文档中导航的语言。
XSL-FO
一种用于格式化 XML文档的语言。
//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>
//XSLT 代码 <?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> //html,body,table等标签为html标签,这里是规定在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"> //在html 标签中插入<xsl>标签来绑定XML中的节点,“/”表示层次关系 <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 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> // 链接语句 <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>
从上可以看出,XSLT和XML的关系:
1、XSL可描述如何来显示 XML文档;
2、XSL和XML编写顺序问题。
一种:XSL在XML基础上进行编写,先知道XML中节点的名称,然后XSL中直接拿来用。
适用情况:XML内容确定;xml先于XSL之前已经准备好,那这种方法无疑是ok的。
另一种:XSL,XML独立编写。这时的XSL是一个字段不填写的框架模板,等有了XML文档,再来填空,使用。
适用情况:xml使用量大,且显示要求基本一致;两个文档被不同人编写;XML文档字节不确定等这些因素存在的化,我们就可以使用该方法。
这两种的适用性,想必不用我多说,实际生活中,我们可以根据实际情况来选择使用,那种方便用那种。
原文:http://blog.csdn.net/wangyongxia921/article/details/21556289