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>