XSLT - 生成HTML从XML

问题描述:

在XSL我需要生成HTML标签取决于什么的了,每次我很..XSLT - 生成HTML从XML

例如迭代,如果我有下面的XML:

<Items> 
    <Car>Mercedes</Car> 
    <Bike>Gt</Bike> 
    <House>123</House> 
    <Skate>111</Skate> 
    <Plane>5522</Plane> 
    <tv>Sony</tv> 
</Items> 

和我的XSL一样,您需要生成显示每行2个项目的HTML。 我需要显示每行只有4 tds,其中2个标题和其他2个值。 用我前面的例子预期的HTML是:

<table> 
<tr> 
    <td>Car</td> 
    <td>Mercedes</td> 
    <td>Bike</td> 
    <td>Gt</td> 
</tr> 
<tr> 
    <td>House</td> 
    <td>123</td> 
    <td>Skate</td> 
    <td>111</td> 
</tr> 
<tr> 
    <td>Plane</td> 
    <td>5522</td> 
    <td>tv</td> 
    <td>Sony</td> 
</tr> 
</table> 

我,已经用时/否则里面的for-each,打开或关闭<tr>,但XSL是无效的尝试..

是有办法实现这一点?

用途:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="Items"> 
    <table> 
     <xsl:for-each select="*[position() mod 2 != 0]"> 
     <tr> 
      <td> 
      <xsl:value-of select="name()"/> 
      </td> 
      <td> 
      <xsl:value-of select="."/> 
      </td> 
      <td> 
      <xsl:value-of select="name(following-sibling::*)"/> 
      </td> 
      <td> 
      <xsl:value-of select="following-sibling::*"/> 
      </td> 
     </tr> 
     </xsl:for-each> 
    </table> 
    </xsl:template> 
</xsl:stylesheet> 

输出:

<table> 
    <tr> 
    <td>Car</td> 
    <td>Mercedes</td> 
    <td>Bike</td> 
    <td>Gt</td> 
    </tr> 
    <tr> 
    <td>House</td> 
    <td>123</td> 
    <td>Skate</td> 
    <td>111</td> 
    </tr> 
    <tr> 
    <td>Plane</td> 
    <td>5522</td> 
    <td>tv</td> 
    <td>Sony</td> 
    </tr> 
</table>