xsl页面输出奇偶问题

l_walker 2002-03-11 12:50:17
在XML文件里里的结点值ID是数字,

在XSL文件输出时需要对ID进行排列,如两列,

奇数在左边,偶的在右边,
放到一个TABLE里,

怎么判断??怎么输出

谢谢了,小弟初来,请教请教
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
karma 2002-03-11
  • 打赏
  • 举报
回复
for the last time, I will suggest you not use xsl(http://www.w3.org/TR/WD-xsl) any more. It was a working draft and totally outdated. I believe Microsoft has stopped to support it starting MSXML4

You should be using the W3C recommendation XSLT, the de facto industry standard
ChinaOk 2002-03-11
  • 打赏
  • 举报
回复
如何使用context()方法将数据置入表格

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

<TABLE BORDER="1">
<xsl:for-each select="singers/singer">
<xsl:if expr="(childNumber(this) % 2) == 1">
<TR>
<TD><xsl:value-of /></TD>
<TD><xsl:value-of select="../singer[index() $gt$ context()!index()][0]"/></TD>
</TR>
</xsl:if>
</xsl:for-each>
</TABLE>
如果你要返回一个三列的例子,你就要加一个新的类似的代码,只让每三个元素才产生新的一行。由此你可以推断一个需要n列的表格如何实现。

<TABLE BORDER="1">
<xsl:for-each select="singers/singer">
<xsl:if expr="(childNumber(this) % 3) == 1">
<TR>
<TD><xsl:value-of /></TD>
<TD><xsl:value-of select="../singer[index() $gt$ context()!index()][0]"/></TD>
<TD><xsl:value-of select="../singer[index() $gt$ context()!index()][1]"/></TD>
</TR>
</xsl:if>
</xsl:for-each>
</TABLE>


老翔 2002-03-11
  • 打赏
  • 举报
回复
to karma(无为):xslt里有<xsl:choose>和<xsl:when test="id mod 2 = 0">

xsl(http://www.w3.org/TR/WD-xsl)里有嘛?
karma 2002-03-11
  • 打赏
  • 举报
回复
<xsl:choose>
<xsl:when test="id mod 2 = 0">

</xsl:when>
<xsl:otherwise>

</xsl:otherwise>
</xsl:choose>

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧