Subject: Re: [xsl] Fwd: Combing two different documents From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Mon, 17 Jul 2006 20:09:10 +0530 |
Taking hint from Andrew's answer, I think you need a stylesheet something like this:
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<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="$doc2//*[not(*)]" /> </xsl:template>
Regards, Mukul
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.
I thought I would run an xslt on file1, and then use the XSLTSL xpath:node template to get the xpath of the current node, construct a string like: <xsl:variable name="path2"> <xsl:text>document('file1.xml')/</xsl:text> <xsl:value-of select="$path"/> <xsl:text>bar2</xsl:text> </xsl:variable>
And then get the contents of the element that xpath points to using: <xsl:value-of select="$path2'"/>
But that just prints the contents of the variable $path2! I would like to use evaluate($path2) but that's not in the xslt standard, so is there any other way of achieving what I am trying to achieve?
/David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Fwd: Combing two differen, andrew welch | Thread | Re: [xsl] Fwd: Combing two differen, andrew welch |
RE: [xsl] Templates.newTransformer , Michael Kay | Date | RE: [xsl] XSLT compiler, Michael Kay |
Month |