如何使用context()方法将数据置入表格(XML)

作者:Belltree

1<singers>
2<singer>Celine Dion</singer>
3<singer>Britney Spears</singer>
4<singer>Enya
5<singer>Christina Aguilera</singer>
6<singer>Backstreet Boys</singer>
7<singer>Spice Girls</singer>
8</singer></singers>

一般我们取出一组数据后都喜欢将数据放入一个表格中,这样会方便数据比较和阅读。但XSL并没有提供一种机制来进行任
意的分组。所以必须使用xsl:if结合context() 来完成这项工作。下面的例子返回一个两列的表格。

 1<table border="1">
 2<xsl:for-each select="singers/singer">
 3<xsl:if expr="(childNumber(this) % 2) == 1">
 4<tr>
 5<td><xsl:value-of></xsl:value-of></td>
 6<td><xsl:value-of select="../singer[index() $gt$ context()!index()][0]"></xsl:value-of></td>
 7</tr>
 8</xsl:if>
 9</xsl:for-each>
10</table>

如果你要返回一个三列的例子,你就要加一个新的类似的代码,只让每三个元素才产生新的一行。由此你可以推断一个需
要n列的表格如何实现。

 1<table border="1">
 2<xsl:for-each select="singers/singer">
 3<xsl:if expr="(childNumber(this) % 3) == 1">
 4<tr>
 5<td><xsl:value-of></xsl:value-of></td>
 6<td><xsl:value-of select="../singer[index() $gt$ context()!index()][0]"></xsl:value-of></td>
 7<td><xsl:value-of select="../singer[index() $gt$ context()!index()][1]"></xsl:value-of></td>
 8</tr>
 9</xsl:if>
10</xsl:for-each>
11</table>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus