Subject: [xsl] Re: Filtering with multiple templates From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Fri, 7 Nov 2003 06:53:21 +0100 |
> We need to allow multiple templates to select some of > members. for example, > > the first template will get: > <Member name="x"> > <Member name="z"/> > </Member> > > the second template will get: > <Member name="x"> > <Member name="w"/> > </Member> > > If we run this two templates sequentially, we will > get: > <Member name="x"> > <Member name="z"/> > </Member> > <Member name="x"> > <Member name="w"/> > </Member> > > But we want to get the following based on the original > structure: > > <Member name="x"> > <Member name="z"/> > <Member name="w"/> > </Member> > > Please provide any idea that might help. Thanks a lot. The output of applying two templates can be merged like this: This transformation: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ext="http://exslt.org/common" exclude-result-prefixes="ext"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:template match="/"> <xsl:variable name="vrtfOut"> <xsl:call-template name="t1"/> <xsl:call-template name="t2"/> </xsl:variable> <xsl:variable name="vOut" select="ext:node-set($vrtfOut)/*"/> <xsl:for-each select="$vOut[1]"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="../*/*"/> </xsl:copy> </xsl:for-each> </xsl:template> <xsl:template name="t1"> <Member name="x"> <Member name="z"/> </Member> </xsl:template> <xsl:template name="t2"> <Member name="x"> <Member name="w"/> </Member> </xsl:template> </xsl:stylesheet> when applied on any source.xml (not used), produces: <Member name="x"> <Member name="z"/> <Member name="w"/> </Member> ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Filtering with multiple t, Mukul Gandhi | Thread | Re: [xsl] Re: Filtering with multip, Dongling Ding |
Re: [xsl] Filtering with multiple t, Mukul Gandhi | Date | [xsl] Re: call-template according t, Dimitre Novatchev |
Month |