Re: [xsl] Fwd: Combing two different documents

Subject: Re: [xsl] Fwd: Combing two different documents
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Mon, 17 Jul 2006 21:12:41 +0530
On 7/17/06, andrew welch <andrew.j.welch@xxxxxxxxx> wrote:

The problem here, Mukul, is that for each leaf node in the source
document, all leaf nodes in $doc2 will be copied.  If you were to add
a few extra leaf nodes to the examples this would become apparent.

Thanks Andrew, for pointing this to me..


I believe, the following should work:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:output method="xml" indent="yes" />

<xsl:variable name="doc2" select="document('file2.xml')" />

<xsl:template match="node() | @*">
  <xsl:copy>
    <xsl:apply-templates select="node() | @*" />
  </xsl:copy>
</xsl:template>

<xsl:template match="*[* and not(*/*)]">
  <xsl:copy>
    <xsl:copy-of select="*" />
    <xsl:copy-of select="$doc2//*[not(*)]" />
  </xsl:copy>
</xsl:template>

<xsl:template match="*[not(*)]" />

</xsl:stylesheet>

Regards,
Mukul

Current Thread