Для этого вам нужно сопоставить элементу Page , что это позиция 1, 4, 7 и т. Д. ... Другими словами, где position () mod 3 равно 1.
<xsl:if test="position() mod 3 = 1">
Это дает первый элемент списка.Затем вы можете получить оставшиеся 2 элемента в this, например, так:
<xsl:apply-templates select=".|following-sibling::Page[position() < 3]" mode="list"/>
В целом это дает следующий XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes" encoding="utf-8"/>
<xsl:param name="html-content-type"/>
<xsl:param name="group-size" select="3"/>
<xsl:template match="/NavigationTree">
<xsl:if test="count(//Page) > 0">
<xsl:apply-templates select="Page"/>
</xsl:if>
</xsl:template>
<xsl:template match="Page">
<xsl:if test="position() mod $group-size = 1">
<ul>
<xsl:apply-templates select=".|following-sibling::Page[position() < $group-size]" mode="list"/>
</ul>
</xsl:if>
</xsl:template>
<xsl:template match="Page" mode="list">
<li class="{position()}">
<xsl:text disable-output-escaping="yes"><![CDATA[» ]]></xsl:text>
<a>
<xsl:attribute name="href">
<xsl:value-of select="@FriendlyHref" disable-output-escaping="yes"/>
</xsl:attribute>
<xsl:value-of select="@MenuText" disable-output-escaping="no"/>
</a>
</li>
</xsl:template>
</xsl:stylesheet>
При запуске на вашем входном XML это должно сгенерироватьследующий вывод
<ul>
<li class="1">» <a href="/nl-nl/klantenservice/bestellen.aspx">Bestellen</a></li>
<li class="2">» <a href="/nl-nl/klantenservice/betalen.aspx">Betalen</a></li>
<li class="3">» <a href="/nl-nl/klantenservice/retourneren.aspx">Retourneren</a></li>
</ul>
<ul>
<li class="1">» <a href="/nl-nl/klantenservice/garantie.aspx">Garantie</a></li>
<li class="2">» <a href="/nl-nl/klantenservice/veel-gestelde-vragen.aspx">Faq</a></li>
<li class="3">» <a href="/nl-nl/klantenservice/contact.aspx">Contact</a></li>
</ul>
Обратите внимание, что я параметризовал размер группы, что позволяет вам легко изменять до 4 или 5 элементов в списке, например.