Я не могу понять, как создать xsl для группировки некоторых узлов между другими узлами. По сути, каждый раз, когда я вижу 'SPLIT', мне нужно завершить div и создать новый.
XML выглядит так:
<data name="a" />
<data name="b" />
<data name="c" />
<data name="SPLIT" />
<data name="d" />
<data name="e" />
<data name="SPLIT" />
<data name="f" />
<data name="g" />
<data name="h" />
Вывод должен выглядеть следующим образом
<div>
a
b
c
</div>
<div>
d
e
</div>
<div>
f
g
h
</div>
Я знаю, как сделать это путем «обмана», но хотел бы знать, есть ли правильный способ сделать это:
<div>
<xsl:for-each select="data">
<xsl:choose>
<xsl:when test="@name='SPLIT'">
<xsl:text disable-output-escaping="yes"> </div> <div></xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@name"/>
</xsl:otherwise>
</xsl:for-each>
</div>