考虑以下 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新手,希望有人能帮忙 我和这个。
最佳答案
您可以使用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>
关于xml - 两列表式布局 (XSLT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698005/