急:求教xsl分栏,在线等
时间:2010-09-11
来源:互联网
<xsl:template match="/">
<xsl:param name="tmp">101|102|103|104|105</xsl:param>
<xsl:param name="Nodes" as="item()*" select="test/t1/d1[contains($tmp,@type)]/s"/>
<table style="text-align: left; width: 406px; height: 119px;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<xsl:for-each select="$Nodes">
<tr>
<!--如何获取$Nodes中奇数节点 -->
<td width="50%">
</td>
<!--如何获取$Nodes中偶数节点 -->
<td width="50%">
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:template>
xml:
<?xml version="1.0" standalone="no"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<t1>
<sum>0</sum>
<d1 type="100">
<s>9</s>
</d1>
<d1 type="101">
<s>10</s>
</d1>
<d1 type="102">
<s>11</s>
</d1>
<d1 type="103">
<s>12</s>
</d1>
<d1 type="104">
<s>13</s>
</d1>
<d1 type="105">
<s>14</s>
</d1>
<d1 type="106">
<s>15</s>
</d1>
<d1 type="107">
<s>16</s>
</d1>
</t1>
</test>
期望的结果
表格分两列,第一列显示$Nodes中奇数节点中 s的值,第二列是偶数节点值
作者: fishso 发布时间: 2010-09-11
<xsl:for-each select="$Nodes"> <tr> <!--如何获取$Nodes中奇数节点 --> <td width="50%"> <xsl:for-each select="$Nodes"> <xsl:if test="(. mod 2 != 0)"> <td> <xsl:value-of select="."/> </td> </xsl:if> </xsl:for-each> </td> <!--如何获取$Nodes中偶数节点 --> <td width="50%"> <xsl:for-each select="$Nodes"> <xsl:if test=". mod 2 = 0"> <td> <xsl:value-of select="."/> </td> </xsl:if> </xsl:for-each> </td> </tr> </xsl:for-each>
作者: nwleo 发布时间: 2010-09-11
<xsl:for-each select="$Nodes"> <tr> <!--如何获取$Nodes中奇数节点 --> <td width="50%"> <xsl:for-each select="$Nodes"> <xsl:if test="(. mod 2 != 0)"> <xsl:value-of select="."/> </xsl:if> </xsl:for-each> </td> <!--如何获取$Nodes中偶数节点 --> <td width="50%"> <xsl:for-each select="$Nodes"> <xsl:if test=". mod 2 = 0"> <xsl:value-of select="."/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:for-each>
作者: nwleo 发布时间: 2010-09-11
XML code
<xsl:for-each select="$Nodes"> <tr> <!--如何获取$Nodes中奇数节点 --> <td width="50%"> <xsl:if test="(. mod 2 != 0)"> <xsl:value-of select="."/> </xsl:if> </td> <!--如何获取$Nodes中偶数节点 --> <td width="50%"> <xsl:if test=". mod 2 = 0"> <xsl:value-of select="."/> </xsl:if> </td> </tr> </xsl:for-each>
作者: nwleo 发布时间: 2010-09-11
<tbody>
<tr>
<td width="50%"></td><td width="50%">10</td>
</tr>
<tr>
<td width="50%">11</td><td width="50%"></td>
</tr>
<tr>
<td width="50%"></td><td width="50%">12</td>
</tr>
<tr>
<td width="50%">13</td><td width="50%"></td>
</tr>
<tr>
<td width="50%"></td><td width="50%">14</td>
</tr>
</tbody>
</table>
排版不对的
作者: fishso 发布时间: 2010-09-11
XML code
<xsl:for-each select="$Nodes"> <tr> <xsl:if test=". mod 2 != 0"> <td> <xsl:value-of select="."/> </td> </xsl:if> </tr> <xsl:for-each select="$Nodes"> <tr> <xsl:if test=". mod 2 = 0"> <td> <xsl:value-of select="."/> </td> </xsl:if> </tr> </xsl:for-each>
然后再用javascript把表格的行列转置就可以了。
作者: nwleo 发布时间: 2010-09-11
XML code
<tr> <xsl:for-each select="$Nodes"> <xsl:if test=". mod 2 != 0"> <td> <xsl:value-of select="."/> </td> </xsl:if> </xsl:for-each> </tr> <tr> <xsl:for-each select="$Nodes"> <xsl:if test=". mod 2 = 0"> <td> <xsl:value-of select="."/> </td> </xsl:if> </xsl:for-each> </tr>
作者: nwleo 发布时间: 2010-09-11
position() 换成点之后,排版不一样,不太明白原因
XML code
<xsl:template match="/"> <table style="text-align: left; width: 406px; height: 119px;" border="1" cellpadding="2" cellspacing="2"> <tbody> <tr> <td width="50%" style="vertical-align: top;"> <!-- 左分栏 --> <xsl:call-template name="Split"> <xsl:with-param name="Type" select="1"/> </xsl:call-template> </td> <td width="50%" style="vertical-align: top;"> <!-- 右分栏 --> <xsl:call-template name="Split"> <xsl:with-param name="Type" select="0"/> </xsl:call-template> </td> </tr> </tbody> </table> </xsl:template> <xsl:template name="Split"> <xsl:param name="Type"/> <xsl:param name="tmp">101|102|103|104|105</xsl:param> <xsl:param name="Nodes" as="item()*" select="test/t1/d1[contains($tmp,@type)]/s"/> <table> <xsl:for-each select="$Nodes"> <tr> <td> <xsl:if test="position() mod 2=$Type"> <xsl:value-of select="."/> </xsl:if> </td> </tr> </xsl:for-each> </table> </xsl:template>
作者: fishso 发布时间: 2010-09-11
作者: nwleo 发布时间: 2010-09-11
XML code
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:template match="/"> <xsl:param name="tmp">101|102|103|104|105</xsl:param> <xsl:param name="Nodes" select="test/t1/d1[contains($tmp,@type)]/s"/> <table style="text-align: left; width: 406px; height: 119px;" border="1" cellpadding="2" cellspacing="2"> <tbody> <tr> <td width="50%"> <table> <xsl:for-each select="$Nodes"> <xsl:if test=". mod 2 != 0"> <tr> <td> <xsl:value-of select="."/> </td> </tr> </xsl:if> </xsl:for-each> </table> </td> <td width="50%"> <table> <xsl:for-each select="$Nodes"> <xsl:if test=". mod 2 = 0"> <tr> <td> <xsl:value-of select="."/> </td> </tr> </xsl:if> </xsl:for-each> </table> </td> </tr> </tbody> </table> </xsl:template> </xsl:stylesheet>
作者: nwleo 发布时间: 2010-09-11
作者: theforever 发布时间: 2010-09-11
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28