年初的时候培训teamsite, 是个新加坡的老师,比较专业,是我参加的所有培训讲的最好的,
学习的过程中老师还顺便讲了些xslt的知识,这个东西很不错,它实现了数据和样式的分离,
而且在最近的开发sharepoint时候还用到了,就是sharepoint的 xmlwebpart,
为了便于以后的使用把w3c的例子改了一下,记下来。
首先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>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
</catalog>
我在xslt中加了几个xpath函数和javascript 代码
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='html' version='4.0' encoding='UTF-8' indent='yes'/>
<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:attribute name="id">
<xsl:value-of select="concat(position(), 'title')"/>
</xsl:attribute>
<xsl:value-of select="title"/>
</td>
<td><xsl:value-of select="artist"/></td>
<td>
<button type ="button" onclick ="javascript:alert(document.getElementById({position()}+'Title').innerText);">ShowTitle</button>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
函数concat(string, ...) 返回字符串拼接
position返回当前被处理的节点的index位置