Hallo,
Ich habe zwei XML Dokumente. Nun möchte ich diese zu einem Dokument zusammenführen; d.h. das zweite XML Dokument soll einfach nach dem ersten folgen. Natürlich soll ein gültiges XML Dokument wieder rauskommen...
Wie geht das schnell und effektiv ?
Dokument 1 (foo1.xml)
----------
<?xml version="1.0" encoding="iso-8859-1"?>
<data1>
<foo1 att1="att foo 1">foo 1</foo1>
<foo2 att1="att foo 2">foo 2</foo2>
<!-- comment foo -->
<foo3 att1="att foo 3">foo 3</foo3>
</data1>
-----------
Dokument 2 (foo2.xml)
-----------
<?xml version="1.0" encoding="iso-8859-1"?>
<data2>
<bar1 att1="att bar 1">bar 1</bar1>
<!-- comment bar -->
<bar2 att1="att bar 2">bar 2</bar2>
<bar3 att1="att bar 3">bar 3</bar3>
</data2>
-----------
XSL (anzuwenden auf Dokument 1):
-----------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="iso-8859-1" />
<xsl:template match="/">
<newdocroot>
<xsl:copy-of select="data1" />
<xsl:copy-of select="document('foo2.xml')/data2" />
</newdocroot>
</xsl:template>
</xsl:stylesheet>
------------
Ergebniss (foo3.xml)
------------
<?xml version="1.0" encoding="iso-8859-1"?>
<newdocroot>
<data1>
<foo1 att1="att foo 1">foo 1</foo1>
<foo2 att1="att foo 2">foo 2</foo2>
<!-- comment foo -->
<foo3 att1="att foo 3">foo 3</foo3>
</data1>
<data2>
<bar1 att1="att bar 1">bar 1</bar1>
<!-- comment bar -->
<bar2 att1="att bar 2">bar 2</bar2>
<bar3 att1="att bar 3">bar 3</bar3>
</data2>
</newdocroot>
------------
Grüße
Thomas