Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - XML to XML conversion using XSL [Thread Next] Re: XML to XML conversion using XSLTo: NULL Date: 2/11/2008 1:38:00 PM
Jean-sébastien LEROY wrote:
> I am trying to convert a XML scheme A to a XML scheme B, using XSL 1.0. Can
> someone help me ?
> Here is the schemes :
>
> Scheme A :
>
> <node TEXT="ROOT">
> <node TEXT="N1">
> <node TEXT="N11"/>
> <node TEXT="N12"/>
> <node TEXT="N13"/>
> <node/>
> <node TEXT="N2">
> <node TEXT="N21"/>
> <node TEXT="N22"/>
> <node TEXT="N23"/>
> <node/>
> <node/>
That is not even well-formed XML, assuming you want
<node TEXT="ROOT">
<node TEXT="N1">
<node TEXT="N11"/>
<node TEXT="N12"/>
<node TEXT="N13"/>
</node>
<node TEXT="N2">
<node TEXT="N21"/>
<node TEXT="N22"/>
<node TEXT="N23"/>
</node>
</node>
> Scheme B :
>
> <TEST_PLAN>
> <PLAN ID="0">
> <GROUP ID="1">
> <FEATURE ID="3"> <FEATURE/>
> <FEATURE ID="4"> <FEATURE/>
> <FEATURE ID="5"> <FEATURE/>
> <GROUP/>
> <GROUP ID="2">
> <FEATURE ID="6"> <FEATURE/>
> <FEATURE ID="7"> <FEATURE/>
> <FEATURE ID="8"> <FEATURE/>
> <GROUP/>
> <PLAN/>
> <TEST_PLAN/>
That is not well-formed either, assuming you want
<TEST_PLAN>
<PLAN ID="0">
<GROUP ID="1">
<FEATURE ID="3"> </FEATURE>
<FEATURE ID="4"> </FEATURE>
<FEATURE ID="5"> </FEATURE>
</GROUP>
<GROUP ID="2">
<FEATURE ID="6"> </FEATURE>
<FEATURE ID="7"> </FEATURE>
<FEATURE ID="8"> </FEATURE>
</GROUP>
</PLAN>
</TEST_PLAN>
then the following stylesheet
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<TEST_PLAN>
<xsl:apply-templates select="*"/>
</TEST_PLAN>
</xsl:template>
<xsl:template match="node[@TEXT = 'ROOT']">
<PLAN ID="0">
<xsl:apply-templates select="*"/>
</PLAN>
</xsl:template>
<xsl:template match="/node/node">
<GROUP ID="{position()}">
<xsl:apply-templates select="*"/>
</GROUP>
</xsl:template>
<xsl:template match="/node/node/node">
<FEATURE ID="{position() + count(../../node |
../preceding-sibling::node/node)}"></FEATURE>
</xsl:template>
</xsl:stylesheet>
produces the wanted output.
--
Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
