Tim: Zwei XML Dokumente zusammenführen

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 ?

Danke schon mal für die Antwort !

  1. Hallo,

    äh, pack einen envelope drumrum
    <root>
    <dok>
    <inhalt von dok1/>
    </dok>
    <dok>
    <inhalt von dok2/>
    </dok>
    </root>

    oder vielleicht spezifizierst du es noch etwas genauer.

    gruss

    --
    no strict;
    no warnings;
    79.78 cups of Coffee (Brewed) + Me = Death
    Reklame ist die Kunst, auf den Kopf zu zielen und die Brieftasche zu treffen.
  2. Hi,

    Wie geht das schnell und effektiv ?

    Automatisch oder manuell?

    Manuell funktionierts natürlich so wie Eternius geschrieben hat.
    Automatisch gehts zb mit XSLT.

    Zum Thema Gültigkeit:

    Was meinst Du damit?

    • Nur gültig?
    • oder valide gegen eine DTD od. ein Schema

    viele Grüße

    Michael

    1. Was meinst Du damit?

      • Nur gültig?
      • oder valide gegen eine DTD od. ein Schema

      Michael,
      Was meinst Du damit?

      Der Unterschied zwischen „gültig“ und „valide“ wäre?

      Live long and prosper,
      Gunnar

      PS. [[http://www.w3.org/TR/REC-xml/#dt-valid@title=XML10@en]] vs. [XML10@de]

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      1. Hallo Gunnar,

        Was meinst Du damit?

        Der Unterschied zwischen „gültig“ und „valide“ wäre?

        Mit gültig meinte ich "wohlgeformt", obgleich mir wohl bewusst war, dass gültig eigentlich valid meint. Ich habe jedoch, zugegebenermaßen etwas anmaßend, impliziert, dass diese Gegenüberstellung verständlicher sei denn "wellformed vs. valid", da im allgemeinen Sprachgebrauch wohlgeformt nicht gerade sehr vielsagend ist.

        Viele Grüße

        Michael

        1. Mit gültig meinte ich "wohlgeformt", […] da im allgemeinen Sprachgebrauch wohlgeformt nicht gerade sehr vielsagend ist.

          Michael,
          Gültig sind Frauen ab 16, wohlgeformt ab 160 Pfund.*

          Der allgemeine Sprachgebrauch kennt beide Begriffe und kann sie durchaus unterscheiden.

          Live long and prosper,
          Gunnar

          * im rubensschen Sinne

          --
          „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  3. 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