Drakon
Новичок
Разбивка по группам в XSLT
Стоит такая задача: есть DomDocument со списком картинок. В XSLT нужно его трансформировать так, чтобы получилась таблица по 3 картинки в строке.
Вот список картинок:
group_id - это я уже в PHP сделал номер строки, в которой будет картинка.
Нашёл в одной книжке группировку элементов:
Получил такое:
Всю голову сломал, пока понял... Но теперь встал вопрос - как применить шаблон ко всем imageInfo (типа там поставить теги <td>, <img>, </td>) перед тем, как их группировать?
-~{}~ 15.10.06 03:30:
Усё, придумал... Там вместо xsl:copy-of надо xsl:for-each.
Стоит такая задача: есть DomDocument со списком картинок. В XSLT нужно его трансформировать так, чтобы получилась таблица по 3 картинки в строке.
Вот список картинок:
Код:
<categ_imagesList>
<imageInfo id="69740" width="170" height="255" group_id="0"/>
<imageInfo id="69741" width="170" height="255" group_id="0"/>
<imageInfo id="69742" width="170" height="255" group_id="0"/>
<imageInfo id="69743" width="170" height="255" group_id="1"/>
</categ_imagesList>
Нашёл в одной книжке группировку элементов:
Код:
<xsl:key name="group_ids" match="imageInfo" use="@group_id"/>
<xsl:template match="categ_imagesList">
<table>
<xsl:apply-templates select="imageInfo[generate-id(.)=generate-id(key('group_ids',@group_id))]"/>
</table>
</xsl:template>
<xsl:template match="imageInfo">
<tr>
<xsl:copy-of select="key('group_ids',@group_id)"/>
</tr>
</xsl:template>
Код:
<table>
<tr>
<imageInfo id="69740" width="170" height="255" group_id="0"/>
<imageInfo id="69741" width="170" height="255" group_id="0"/>
<imageInfo id="69742" width="170" height="255" group_id="0"/>
</tr>
<tr>
<imageInfo id="69743" width="170" height="255" group_id="1"/>
</tr>
</table>
-~{}~ 15.10.06 03:30:
Усё, придумал... Там вместо xsl:copy-of надо xsl:for-each.