Subject: Re: [xsl] Fwd: Combing two different documents From: "andrew welch" <andrew.j.welch@xxxxxxxxx> Date: Mon, 17 Jul 2006 11:13:34 +0100 |
Hello,
I am trying to combine to seperate XML documents that have the same structure but different leaf nodes, e.g: ---File 1.xml--- <base> <foo> <bar1>123</bar1> </foo> </base> --File 2.xml---- <base> <foo> <bar2>abc</bar2> </foo> </base>
I want the output to be: <base> <foo> <bar1>123</bar1> <bar2>abc</bar2> </foo> </base>
Preferably without hardcoding too much of the structure of the file into the .xsl.
<xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template>
<xsl:template match="*[not(*)]"> <xsl:copy-of select="."/> <xsl:copy-of select="$file2//*[not(*)][count(preceding::*) = count(current()/preceding::*)]"/> </xsl:template>
You would apply this transform to file1.xml and reference file2.xml using the document() function.
You could speed it up by using a key for the lookup into $file2 as the heavy using of the preceding axis would likely make this very slow.
cheers andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Fwd: Combing two different do, David B | Thread | Re: [xsl] Fwd: Combing two differen, andrew welch |
[xsl] [ANN] XML Studio v6-- Web 2.0, ALT Mobile | Date | RE: [xsl] Fwd: Combing two differen, cknell |
Month |