[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Re:Re: Joining two XML-files

Subject: Re: Re:Re: Joining two XML-files
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Tue, 23 Oct 2001 12:13:34 +0100
join 2 xml files
Hi Sun-fu,

> I try to work out suggestions for joining two XML-files to Jorge,
>> These files are related through the commom value of an attribute.
>> In the previous example file1.att1 is found in file2.fld1 I need to
>> produce a third file where get mixed some attributes of the related
>> "records".For example:
>>
>> file3.xml
>>     <row att1='foo' att2='morefoo" fld2='otherfoo" />
>>     <row att1='foo2' att2='morefoo2" fld2='otherfoo2" />
>>     <row att1='foo2' att2='morefoo2" fld2='anotherfoo2" />
>> ...
>> </data>
>
> However, I got files3 with two rows , do I misinterpret your
> suggestions?

Ah, no, I'd missed the fact that file2.xml had two row elements with
the same value for fld1. Here's a better solution:

  <!-- iterate over all the rows from file1 -->
  <xsl:for-each select="$file1/data/row">
    <xsl:variable name="row-from-file1" select="." />
    <!-- change the context to file2 -->
    <xsl:for-each select="$file2">
      <!-- iterate over all the rows in file2 whose fld1 attribute is
           the same as the current row's att1 attribute -->
      <xsl:for-each select="key('rows-by-fld1,
                                $row-from-file1/@att1)">
        <!-- create a row element -->
        <row>
          <!-- copy the attributes from the row from file1 -->
          <xsl:copy-of select="$row-from-file1/@*" />
          <!-- copy the attributes from this row from file2 -->
          <xsl:copy-of select="@*[name() != 'fld1']" />
        </row>
      </xsl:for-each>
    </xsl:for-each>
  </xsl:for-each>

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.