|
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 |