以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  『江湖救急』:XSLT<td rowspan="2" >A</td>如何修改rowspan的值?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=13448)


--  作者:枫桥
--  发布时间:1/11/2005 11:33:00 AM

--  『江湖救急』:XSLT<td rowspan="2" >A</td>如何修改rowspan的值?
例子:
XML文件:A.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml:stylesheet type="text/xsl" href="A.xsl"?>
<Items>
 <Item ID="0" Name="1" />
<Items>

XSL文件:A.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:template match="/">
          <table  bgcolor="#AAAAAA">
            <tr>
    <td rowspan="2" >A</td>
    <td>B</td>
    <td>C</td>
    <td>D</td>
    <td>E</td>
    <td>F</td>
     </tr>
           <xsl:for-each select="//Items//Item">
     <tr>  
    <td><xsl:value-of select="@Range"/></td>
    <td><xsl:value-of select="@Range"/></td>
    <td><xsl:value-of select="@Range"/></td>
    <td><xsl:value-of select="@Range"/></td>
    <td><xsl:value-of select="@Range"/></td>
     </tr>
            </xsl:for-each>
         </table>
 </xsl:template>
</xsl:stylesheet>

请教问题:如何根据XML文件中的"Item"的数量定义“rowspan"的值?
"Item"的初始数量为1
”rowspan“的初始值为2

http://www.maplebridge.cn/images/1.gif
添加“Item”后表格变成
http://www.maplebridge.cn/images/2.gif

忘众高手指点,谢谢!

[此贴子已经被作者于2005-1-11 11:55:24编辑过]

--  作者:doubleG
--  发布时间:1/11/2005 5:58:00 PM

--  
哈哈,我没有美术细胞呢:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:template match="/">
  <table bgcolor="#AAAAAA" border="1">
   <tr>
    <td rowspan="{count(//Item)+1}">A</td>
    <td>B</td>
    <td>C</td>
    <td>D</td>
    <td>E</td>
    <td>F</td>
   </tr>
   <xsl:for-each select="//Item">
    <tr bgcolor="#FFFFFF">
     <td>
       
     </td>
     <td>
       
     </td>
     <td>
       
     </td>
     <td>
       
     </td>
     <td>
       
     </td>
    </tr>
   </xsl:for-each>
  </table>
 </xsl:template>
</xsl:stylesheet>

--  作者:枫桥
--  发布时间:1/13/2005 2:23:00 PM

--  
楼上的兄弟果然高,我按你的办法调试了一下,果然可以,谢谢!不过我也已经用了另外的办法解决了,同样也调试通过,达到预期效果!
我的办法是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
  <table bgcolor="#AAAAAA" border="1">
   <tr>
<td>
<xsl:attribute name="rowspan">
<xsl:value-of select="count(//Item)+1"/>
</xsl:attribute>    
A</td>
     <td>B</td>
    <td>C</td>
    <td>D</td>
    <td>E</td>
    <td>F</td>
    </tr>
   <xsl:for-each select="//Item">
    <tr bgcolor="#FFFFFF">
     <td>    </td>
     <td>    </td>
     <td>    </td>
     <td>    </td>
     <td>   </td>
    </tr>
    </xsl:for-each>
  </table>
</xsl:template>
</xsl:stylesheet>

异曲同工啊,再次谢谢楼上的!


--  作者:菜籽
--  发布时间:1/18/2005

--  
hehe 牛啊
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
3,710.938ms