VeroLom
@VeroLom
Веб-разработчик, фрилансер, UMI.CMS

Как выбрать по два элемента в XSLT?

Суть такая: есть файл XML:
<items>
    <item id="1" src="/1.jpg" />
    <item id="2" src="/2.jpg" />
    <item id="3" src="/3.jpg" />
    <item id="4" src="/4.jpg" />
    <item id="5" src="/5.jpg" />
</items>

Для слайдера картинок есть такой шаблон:
...
    <ul>
        <xsl:apply-templates select="items/item" />
    </ul>
...
<xsl:template match="item">
    <li>
        <img src="@src" />
    </li>
</xsl:template>


Мне же нужно в li добавлять по два элемента из XML, дабы в слайдере было по две картинки в одном блоке. Каким образом это сделать?
  • Вопрос задан
  • 323 просмотра
Решения вопроса 2
@Roman-Fov
Можно так

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:template match="/items">
		<ul>
			<xsl:apply-templates select="item[position() mod 2 = 1]" />
		</ul>
	</xsl:template>

	<xsl:template match="item">
		<li>
			<img src="{@src}"/>
			<img src="{following::item/@src}"/>
		</li>
	</xsl:template>
</xsl:stylesheet>


Выдаст
<ul>
   <li>
      <img src="/1.jpg"/>
      <img src="/2.jpg"/>
   </li>
   <li>
      <img src="/3.jpg"/>
      <img src="/4.jpg"/>
   </li>
   <li>
      <img src="/5.jpg"/>
      <img src=""/>
   </li>
</ul>
Ответ написан
VeroLom
@VeroLom Автор вопроса
Веб-разработчик, фрилансер, UMI.CMS
<xsl:template match="item">
    <ul>
        <xsl:for-each select="item[position() mod 2 = 1]">
            <li>
                <xsl:apply-templates select=". | following-sibling::item[1]" />
            </li>
        </xsl:for-each>
    </ul>
</xsl:template>

<xsl:template match="item">
    <img src="{@url}" />
</xsl:template>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы