[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] merging multiple xml files


Subject: Re: [xsl] merging multiple xml files
From: Rick Taylor <taylor@xxxxxxxx>
Date: Wed, 04 Jun 2003 14:47:06 -0600

You can use a combination of the document() function and sort.

try running this agaist the masterfile:

 <xsl:template match="masterfile">
   <merged>
    <xsl:apply-templates select="document(doc/@filename)/client">
     <xsl:sort select="name"/>
     <xsl:sort select="subclient/name"/>
    </xsl:apply-templates>
  </merged>
 </xsl:template>

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


-rick



At 02:36 PM 6/4/03 -0500, you wrote:





I have multiple xml files that I wish to merge. An example of the files is
below.  Note that a file
may contain thousands of <detail> nodes.  I want to merge them so that the
clients are grouped together
I have been using a master xml file to try and merge but with no success in
keeping the clients together.
Also, due to the size of the files, is using xsl:copy and xsl:copy-of the
best way to approach this.

Thanks
.

<masterfile>
      <doc filename="file1.xml"/>
      <doc filename="file2.xml"/>
      <doc filename="file3.xml"/>
</masterfile>

<client>
      <name>A</name>
      <subclient>
            <name>a</name>
            <detail>....</<detail>
            <detail>....</<detail>
      </subclient>
</client>

<client>
      <name>A</name>
      <subclient>
            <name>b</name>
            <detail>....</<detail>
            <detail>....</<detail>
      </subclient>
</client>

<client>
      <name>B</name>
      <subclient>
            <name>c</name>
            <detail>....</<detail>
            <detail>....</<detail>
      </subclient>
</client>

<merged>
      <client>
            <name>A</name>
            <subclient>
                  <name>a</name>
                  <detail>....</<detail>
                  <detail>....</<detail>
            </subclient>
            <subclient>
                  <name>b</name>
                  <detail>....</<detail>
                  <detail>....</<detail>
            </subclient>
      </client>
      <client>
            <name>B</name>
            <subclient>
                  <name>c</name>
                  <detail>....</<detail>
                  <detail>....</<detail>
            </subclient>
      </client>
</merged>


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

Rick Taylor XML Developer PPDM Association


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




Current Thread
Keywords