I have the following XML file -
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>1</a>
<b>2</b>
<d>3</d>
<d>4</d>
<b>5</b>
<b>6</b>
<c>7</c>
<c>8</c>
<a>9</a>
</root>
I am trying to do grouping operation with the following XSL -
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/root">
<groups>
<xsl:for-each select="*[not(name() = name(preceding-sibling::*))]">
<group name="{name()}" />
</xsl:for-each>
</groups>
</xsl:template>
</xsl:stylesheet>
I am expecting output -
<groups>
<group name="a" />
<group name="b" />
<group name="c" />
<group name="d" />
</groups>
But I get output -
<?xml version="1.0" encoding="UTF-8"?>
<groups>
<group name="a"/>
<group name="b"/>
<group name="d"/>
<group name="d"/>
<group name="b"/>
<group name="b"/>
<group name="c"/>
<group name="c"/>
</groups>
Where is the problem?
This is tested with Xalan-J 2.6.0 and Saxon 8.4
Regards,
Mukul
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--