[xsl] Merge two xml files into one ?

Subject: [xsl] Merge two xml files into one ?
From: "Kerry, Richard" <richard.kerry@xxxxxxxxxxx>
Date: Mon, 11 Feb 2008 17:07:40 -0000
Can I use XSL to merge the contents of two xml files into one ?

I have :
File1.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE device SYSTEM "device.dtd">
<device name="Test">
    <param name="CommsStatus" slot="2" />
    <param name="DriverStatus" slot="3" />
    <param name="LastDeviceError" slot="4" />
    <param name="AlarmCount" slot="5" />
    <param name="QuietMode" slot="6" />
</device>

File2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE device SYSTEM "device.dtd">
<device>
    <param name="CommsStatus" slot="5" />
    <param name="DriverStatus" slot="6"  />
    <param name="LastDeviceError" slot="7"  />
    <param name="AlarmCount" slot="8"  />
    <param name="QuietMode" slot="9"  />
</device>


I want:

File3.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE device
  SYSTEM "device.dtd">
<device name="Test">
    <param name="CommsStatus" slot="2" />
    <param name="DriverStatus" slot="3" />
    <param name="LastDeviceError" slot="4" />
    <param name="AlarmCount" slot="5" />
    <param name="QuietMode" slot="6" />
    <param name="CommsStatus" slot="5" />
    <param name="DriverStatus" slot="6"  />
    <param name="LastDeviceError" slot="7"  />
    <param name="AlarmCount" slot="8"  />
    <param name="QuietMode" slot="9"  />
</device>

Note that I don't care about the order of slot numbers, the contents of
the second file just gets added at the end.
Also that I will assume the same dtd and outermost element for both
files.

I've done this in the past by a program that reads both trees and just
adds the second after the last child of the first and write out the
result.
This looks to me like something that ought to be possible to do by some
extremely simple bit of Xsl but I'm not sure what.

Appreciatively,
Richard.



Richard Kerry
Colledia Control Engineer
Siemens IT Solutions and Services Ltd
Room 457 Design Building, BBC Television Centre, Wood Lane, London, W12
7RJ
T: +44 (0)20 82259063 F: +44 (0)20 8576 8182 M: +44 (0)7921 244993
Email: richard.kerry@xxxxxxxxxxx
<blocked::mailto:richard.kerry@xxxxxxxxxxx>
Website:  www.siemens.co.uk/it-solutions
<blocked::outbind://47/www.siemens.co.uk/it-solutions>

This e-mail contains confidential information and is for the exclusive
use of the addressee/s.  If you are not the addressee, then any
distribution, copying or use of this e-mail is prohibited. If received
in error, please advise the sender and delete it immediately.  We accept
no liability for any loss or damage suffered by any person arising from
use of this e-mail.

Siemens IT Solutions and Services Limited
Registered No: 1203466 England
Registered Office: Faraday House, Sir William Siemens Square, Frimley,
Camberley, GU16 8QD

Current Thread