Subject: [xsl] Converting an xml to another xml Using XSLT From: "Tedla, Sridhar \(LNG-CSP\)" <Sridhar.Tedla@xxxxxxxxxxxxxx> Date: Tue, 2 May 2006 12:36:19 -0600 |
Question: Converting an XML markup to another XML Markup Using XSLT. Sample XML Markup: <class > <classitem> <identifier> <name>Sales </name> <code>1234</code> </identifier> <classitem> <identifier> <name> Tax</name> <code>5678</code> </identifier> </classitem> </classitem> </class> After XSL Transformation, the output markup should be as follows: <hier> <hierlev > <heading> <title>Sales</title> </heading> <hierlev> <heading> <title> Tax</title> </heading> </hierlev> </hierlev> </hier> The mapping between Input and output markup elements as follows: class - hier Classitem - heirlev identifier - heading name - title code has no mapping i.e. the element can be ignored in XSLT Code I have written XSLT code which works for fixed depth of class.Actually I have written XSLT code for classItem depth of 4, but for simplicity... the following code is for classItem depth of 2 only. <xsl:template match="class"> <xsl:param name="count"/> <xsl:param name="v1" select="descendant::name[1]/text()"/> <xsl:param name="v2" select="descendant::name[2]/text()"/> <xsl:call-template name="createHierLevElement"> <xsl:with-param name="hierLevContent"> <xsl:element name="heading"> <xsl:element name="title"> <xsl:copy-of select="$v1"/> </xsl:element> </xsl:element> <xsl:if test=" $count = 2 "> <xsl:call-template name="createHierLevElement"> <xsl:with-param name="hierLevContent"> <xsl:element name="heading"> <xsl:element name="title"> <xsl:copy-of select="$v2"/> </xsl:element> </xsl:element> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template name="createHierLevElement"> <xsl:param name="hierLevContent" /> <xsl:element name="hierlev"> <xsl:copy-of select="$hierLevContent" /> </xsl:element> </xsl:template> If my input markup has arbitary depth, the above XSLT code will not work, so I need code which accomodates any depth of ClassItem. Thanks. Sridhar
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Producing Excel 2000 htm , Joe Fawcett | Thread | Re: [xsl] Converting an xml to anot, Jon Gorman |
RE: Re: RE: [xsl] Producing Excel 2, cknell | Date | [xsl] Alternate stylesheet based on, Matt Reimer |
Month |