 悬赏园豆:50
                [待解决问题]
                悬赏园豆:50
                [待解决问题] 
            
                 
        现有如下xml
<?xml version="1.0" encoding="utf-8" ?>
<testresults>
   <section id="id1">
   <test name="id1-case1" result="Passed" error="" />
   <test name="id1-case2" result="Failed" error="msg" />
   </section>
   <section id="id2">
   <test name="case1" result="Passed" error="" />
   </section>
</testresults>
要转换成下面的table
<table>
   <tr>
   <td colspan="3">id1</td>
   </tr>
   <tr>
   <td>id1-case1</td>
   <td>Passed</td>
   <td></td>
   </tr>
   <tr>
   <td>id1-case2</td>
   <td>Failed</td>
   <td>msg</td>
   </tr>
   <tr>
   <td colspan="3">id2</td>
   </tr>
   <tr>
   <td>id2-case1</td>
   <td>Passed</td>
   <td></td>
   </tr>
</table>
xslt:
<table border="1" style="width:100%">
   <tr bgcolor="#9acd32">
   <th>Case</th>
   <th>Status</th>
   <th>Comment</th>
   </tr>
   <xsl:for-each select="testresults/section/test">
     
   <tr>
   <td colspan="3">Section: <xsl:value-of select="../@id"/></td>
   </tr>
     
     
   <tr>
   <td><xsl:value-of select="@name"/></td>
   <td><xsl:value-of select="@result"/></td>
   <td><xsl:value-of select="@error"/></td>
   </tr>
     
   </xsl:for-each>
     
   </table>
但是这样写 section每次都输出 我只要它输出一次 然后输出它的全部子节点 有人知道吗
<xsl:if test= "position() = 1 "> <tr> <td colspan="3">Section: <xsl:value-of select="../@id"/></td> </tr> </xsl:if>
这样?
你这样第二个section 就输不出了
后来这样可以了 取test的放在一个template, 取section用for-each
只用js的话可以通过ie浏览器的activexobject 先把xml 转换table表格,然后把table转换execl,不过存在兼容性问题,只能是ie