返回信息流☆─────────────────────────────────────☆
wks (cloverprince) 于 (Sat Mar 8 23:03:58 2008) 提到:
最近发现的一个好玩的东西,希望不要火星。
XSLT是一种神奇的工具。
它可以将一个XML文档转换成另一种XML文档,
而转换规则也是一个XML文档。
举一个例子,这是我的CD数据库,用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>
我想把他转换成XHTML,放到网站上,于是我给予转换规则(叫做XSL Stylesheet):
<?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>
上述规则定义了:把根节点转换成一个html文档,把每个cd记录转换成表格中的一行。
把这个转换规则应用于原始的XML文档,就把它转换成了:
<html><body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th align="left">Artist</th>
</tr>
<tr>
<td>Empire Burlesque</td>
<td>Bob Dylan</td>
</tr>
</table>
</body></html>
XSLT的应用:
- 新版本的DocBook应用的就是XSLT。DocBook文档(一本书)用XML描述,然后用XSLT转换成各种格式,如HTML,用于网络,或者用其它手段转换成PDF甚至man page。
- IE6.0,Firefox1.0.3,Opera9以上都支持XML和XSLT,可以用它们建立网站,XSLT转换工作在客户端执行,加强代码复用,减少冗余。
- 配合XQuery建立XML数据库(貌似效率不高)。
- 等等
☆─────────────────────────────────────☆
rboy (cat) 于 (Sun Mar 9 19:20:04 2008) 提到:
不火星呵呵
做ajax的时候还是很经常用到的
☆─────────────────────────────────────☆
parameter (paradise) 于 (Tue Mar 11 18:33:55 2008) 提到:
你会发现一个更神奇的东东 cocoon2
☆─────────────────────────────────────☆
wp (wp) 于 (Tue Mar 11 19:52:44 2008) 提到:
就是有点慢,写起来还是有点麻烦
这是一条镜像帖。来源:北邮人论坛 / www-technology / #3307同步于 2008/5/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
[合集] [讨论]XSLT- eXtensible Style Language Transform
tntzwz
2008/5/27镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。