I want to transform this xml :
<?xml version="1.0" encoding="UTF-8"?>
<cats>
<category level="1" name="Business Law"/>
<category level="2" name="Corporations" parent="Business Law">
</category>
<category level="2" name="Nonprofit Corporations*" parent="Business Law">
</category>
</cats>
Into this xml:
<?xml version="1.0" encoding="UTF-8"?>
<cats>
<category name="Business Law"/>
<subcat name="Corporations"/>
<subcat name="Nonprofit Corporations*">
</category>
</cats>
It seems it should be simple but is giving me fits. Current stylesheet
(stinks) is this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml"/>
<xsl:template match="/cats">
<cats>
<xsl:apply-templates select="category"/>
</cats>
</xsl:template>
<xsl:template match="category">
<xsl:if test="@level=1">
<category>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
<subcat>
<xsl:attribute name="name">
<xsl:value-of select="following-sibling::category/@name"/>
</xsl:attribute>
</subcat>
</category>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Current stlyesheet returns this:
<?xml version="1.0" encoding="UTF-8"?>
<cats>
<category name="Business Law">
<subcat name="Corporations"/>
</category>
</cats>
the 3rd category node in the orginal xml does not get processed how can
I assure all fllowing category nodes get processed?
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list