Here's another approach:
<?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" indent="yes" encoding="UTF-8" />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="record">
<record name="{(_at_)name}">
<xsl:apply-templates />
</record>
</xsl:template>
<xsl:template match="item[(_at_)name='Title_EN']">
<item name="english">
<value>
<item name="Title">
<value><xsl:value-of select="value" /></value>
</item>
<xsl:if
test="following-sibling::item[(_at_)name='Paragraph']/value/item[(_at_)name='SubParagraph_EN']">
<item name="Paragraph">
<value>
<xsl:apply-templates
select="following-sibling::item[(_at_)name='Paragraph']/value/item[(_at_)name='SubParagraph_EN']"
/>
</value>
</item>
</xsl:if>
</value>
</item>
</xsl:template>
<xsl:template match="item[(_at_)name='Title_FR']">
<item name="french">
<value>
<item name="Title">
<value><xsl:value-of select="value" /></value>
</item>
</value>
<xsl:if
test="following-sibling::item[(_at_)name='Paragraph']/value/item[(_at_)name='SubParagraph_FR']">
<item name="Paragraph">
<value>
<xsl:apply-templates
select="following-sibling::item[(_at_)name='Paragraph']/value/item[(_at_)name='SubParagraph_FR']"
/>
</value>
</item>
</xsl:if>
</item>
</xsl:template>
<xsl:template match="item">
<item name="common">
<value>
<xsl:copy-of select="." />
</value>
</item>
</xsl:template>
<xsl:template match="item[(_at_)name='SubParagraph_EN'] |
item[(_at_)name='SubParagraph_FR']">
<item name="SubParagraph">
<xsl:copy-of select="value" />
</item>
</xsl:template>
<xsl:template match="item[(_at_)name='Paragraph']" />
</xsl:stylesheet>
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email
--~------------------------------------------------------------------
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>
--~--