У меня есть следующий XML:Как отсортировать список элементов XML в строках для таблицы HTML?
<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 или 2.0? –
Извините, XSLT 1.0. Я добавлю этот тег. – Fylke