如何在XSLT中显示从一个元素到两列的数据?
让我想想如何在XSLT中显示从一个元素到两列的数据?,xslt,Xslt,让我想想 <item> <name>A</name> </item> <item> <name>B</name></item> <item> <name>C</name></item> <item> <name>D</nam
<item>
<name>A</name>
</item>
<item>
<name>B</name></item>
<item>
<name>C</name></item>
<item>
<name>D</name></item>
<item>
<name>E</name></item>
<item>
<name>F</name></item>
<item>
<name>G</name></item>
我希望在html页面的两列中显示“name”。
谢谢尝试将位置除以2,看看是否有余数 XML输入
<items>
<item>
<name>A</name>
</item>
<item>
<name>B</name>
</item>
<item>
<name>C</name>
</item>
<item>
<name>D</name>
</item>
<item>
<name>E</name>
</item>
<item>
<name>F</name>
</item>
<item>
<name>G</name>
</item>
</items>
<html>
<table>
<tr>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>C</td>
<td>D</td>
</tr>
<tr>
<td>E</td>
<td>F</td>
</tr>
<tr>
<td>G</td>
<td></td>
</tr>
</table>
</html>
A.
B
C
D
E
F
G
XSLT1.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="/*">
<html>
<table>
<xsl:apply-templates select="item[position() mod 2 = 1]"/>
</table>
</html>
</xsl:template>
<xsl:template match="item[position() mod 2 = 1]">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="following-sibling::item[1]/name"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
HTML输出
<items>
<item>
<name>A</name>
</item>
<item>
<name>B</name>
</item>
<item>
<name>C</name>
</item>
<item>
<name>D</name>
</item>
<item>
<name>E</name>
</item>
<item>
<name>F</name>
</item>
<item>
<name>G</name>
</item>
</items>
<html>
<table>
<tr>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>C</td>
<td>D</td>
</tr>
<tr>
<td>E</td>
<td>F</td>
</tr>
<tr>
<td>G</td>
<td></td>
</tr>
</table>
</html>
A.
B
C
D
E
F
G
我想在两列中查看这些数据。这不是很精确。HTML输出?这些列应该是什么样的?比如AB>DE>FG>谢谢……投票结束,看起来像是一个家庭作业问题……与其说是not(position()mod 2=0)
,不如说是position()mod 2=1
。毕竟,position()mod 2
只有两个可能的值。另外,为了更好地支持旧浏览器,当后面的兄弟::name[1]
为空时,输出&x160代码>。当一个单元格真的是空的时候,旧浏览器的表现非常糟糕。@SeanB.Durkin-关于position()mod 2
的观点很好。请接受我在这里所做的更改。问候。@ROOMY-我已经编辑了我的答案,以匹配您在问题中对XML输入所做的修改。