XSL索引
XSL可以用来对一个XML文档进行索引。
将索引信息放在哪里
现在重新看看在以前许多章节中都曾看到过的 XML文档:
?xml version="1.0"?
CATALOG
CD
TITLEEmpire Burlesque/TITLE
ARTISTBob Dylan/ARTIST
COUNTRY<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />
COMPANY
PRICE10.90/PRICE
YEAR1985/YEAR
/CD
.
.
.
要想将这个XML文件作为一个普通的HTML文件输出,并且同时对它进行索引,只需要在XSL文件中增加一个order-by 属性,如下:
xsl:for-each select="CATALOG/CD" order-by="+ ARTIST"
order-by属性使用加号(+)或减号(-)来定义是使用升序还是降序,再用一个元素名称来定义排序的元素。
现在来看看经过轻微调整的XSL样式表(或在IE5中打开它):
?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
thTitle/th
thArtist/th
/tr
xsl:for-each select="CATALOG/CD"
order-by="+ ARTIST"
tr
tdxsl:value-of select="TITLE"//td
tdxsl:value-of select="ARTIST"//td
/tr
/xsl:for-each
/table
/body
/html
/xsl:template
/xsl:stylesheet
在浏览器中转换
以下是在浏览器中将XML文件转换成HTML所需要的简单代码:
/tr
xsl:for-each select="CATALOG/CD[ARTIST='Bob Dylan']"
tr
tdxsl:value-of select="TITLE"//td
tdxsl:value-of select="ARTIST"//td
/tr
/xsl:for-each
/table
/body
/html
/xsl:template
/xsl:stylesheet
在浏览器中转换
以下是在浏览器中将XML文件转换成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_filter.xsl")
// Transform
document.write(xml.transformNode(xsl))
/script
/body
/html
如果使用的是Internet Explorer 5.0 或更高版本,请点击这里查看结果。


