【发布时间】:2017-07-02 20:42:57
【问题描述】:
我有以下 XML:
<items>
<item x="1" y="3"/>
<item x="2" y="4"/>
<item x="3" y="4"/>
<item x="4" y="2"/>
<item x="5" y="1"/>
</items>
我想最终将它们放入 HTML 表格中(x 和 y 是该表格中单元格的坐标),并且为了更容易将这些项目放入行中,如下所示:
<items>
<row y="1">
<item x="1" y="1"/>
</row>
<row y="2">
<item x="2" y="2"/>
</row>
<row y="3">
<item x="5" y="3"/>
</row>
<row y="4">
<item x="3" y="4"/>
<item x="4" y="4"/>
</row>
</items>
但我能想出的唯一转换不仅不起作用,而且不允许我用行号注释行。
<xsl:template match="/items">
<items>
<row>
<xsl:for-each select="item">
<xsl:sort select="@y"/>
<xsl:sort select="@x"/>
<xsl:if test="preceding-sibling::item[1]/@y != @y">
<xsl:text>"</row>"</xsl:text>
<xsl:text>"<row>"</xsl:text>
</xsl:if>
<xsl:copy-of select="."/>
</xsl:for-each>
</row>
</items>
</xsl:template>
我怎样才能做到这一点?
【问题讨论】:
-
啊抱歉,XSLT 1.0。我会添加那个标签。