This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
using call-template to call template from another xsl
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] using call-template to call template from another xsl
- From: Wate at wisor dot com
- Date: Thu, 3 May 2001 13:46:39 -0400
- Reply-To: xsl-list at lists dot mulberrytech dot com
hi
my xml is
<order>
<admin>
<pon>
1234
</pon>
<name>
Shirish Wate
</name>
</admin>
<billing>
<firstname>
Shirish
</firstname>
<lastname>
Wate
</lastname>
</billing>
</order>
i want the output to something like this
<myorder>
<adminsection>
<purchaseordernumber>
1234
</purchaseordernumber>
<myname>
Shirish Wate
</myname>
</adminsection>
<billingsection>
<myfirstname>
Shirish
</myfirstname>
<mylastname>
Wate
</mylastname>
</billingsection>
</myorder>
but i want to write separate xsl for the admin and billing.
i have written three xsls master.xsl,admin.xsl and billing.xsl
----------------------------------------------------
master.xsl
---------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:import href="admin.xsl"></xsl:import>
<xsl:import href="billing.xsl"></xsl:import>
<xsl:template match="/order/admin">
<myorder>
<xsl:call-template name="tmpadmin"/>
<xsl:call-template name="tmpbill"/>
</myorder>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------
admin.xsl
---------------------------------------------------
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method = "xml" indent = "yes" omit-xml-declaration="yes"
/>
<xsl:template name="tmpadmin" >
<adminsection>
<xsl:if test= "pon"
><purchaseordernumber><xsl:value-of select="pon" />
</purchaseordernumber></xsl:if>
<xsl:if test= "name" ><myname><xsl:value-of
select="name" /> </myname></xsl:if>
</adminsection>
<xsl:template>
</xsl:stylesheet>
-------------------------------------------------
billing.xsl
-------------------------------------------------
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method = "xml" indent = "yes" omit-xml-declaration="yes"
/>
<xsl:template name="tmpbill" >
<adminsection>
<xsl:if test= "firstname"
><myfirstname><xsl:value-of select="firstname" /> </myfirstname></xsl:if>
<xsl:if test= "lastname" ><mylastname><xsl:value-of
select="lastname" /> </mylastname></xsl:if>
</adminsection>
<xsl:template>
</xsl:stylesheet>
-------------------------------------------------
i am getting the <adminsection> properly but in the <billingsection> i get
empty tags <myfirstname> and <mylastname> even though the corresponding tags
are present in the input xml
can anybody help me on this.
thankx in advance
-shirish wate
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list