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 22:01:19 +0530
On 7/17/06, Florent Georges <darkman_spam@xxxxxxxx> wrote:

 No, the problem is the same.  You are in the context of a specific
element in the first tree, but copy all leaves of the second tree.  See
the Andrew's solution, how he uses the count of the preceding nodes to
target the right element in the second tree.

I believe I am doing all right.. I'll try to explain my logic.


file1.xml is
<base>
 <foo>
   <bar1>123</bar1>
 </foo>
</base>

file2.xml is
<base>
 <foo>
   <bar2>abc</bar2>
 </foo>
</base>

The OP said, that structure of both trees is same, except the leaf
elements (bar1 and bar2 here). There can be multiple elements at leaf,
on both trees.

The OP wanted to merge the leaf elements, and leaving rest of the
structure intact.

This template rule ..

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

matches those element nodes in file1.xml, which are just above the
leaf elements (for e.g. at level /base/foo). This template first
copies its leaf elements, and then copies the other tree's leaves.

Regards,
Mukul

Current Thread