考虑以下XML代码:
<tip>
<number>1</number>
<number>2</number>
<number>3</number>
<number>4</number>
<number>5</number>
</tip>
我想要这样的HTML输出:
<table>
<tr>
<td><number>1</number></td>
<td><number>2</number></td>
</tr>
<tr>
<td><number>3</number></td>
<td><number>4</number></td>
</tr>
<tr>
<td><number>5</number></td>
</tr>
</table>
我是XSL的新手,希望有人可以提供帮助 我有这个。
答案 0 :(得分:3)
您可以使用mod
(模数)执行此操作。
XML输入
<tip>
<number>1</number>
<number>2</number>
<number>3</number>
<number>4</number>
<number>5</number>
</tip>
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="tip">
<table>
<xsl:apply-templates select="number[not(position() mod 2 = 0)]"/>
</table>
</xsl:template>
<xsl:template match="number">
<tr>
<td><xsl:value-of select="."/></td>
<td><xsl:value-of select="(following-sibling::number)[1]"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
<强>输出强>
<table>
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td/>
</tr>
</table>