Zum Hauptinhalt springen
Version: 5.2

XML Daten erstellen

XML-Dokumente als Ziel

Als Transferziel erstellt das XML-Objekt XML-Code anhand der konfigurierten X-Path-Abfragen.

  • Der XML-Code kann weiter übertragen werden, z. B. in eine Datenbank. Um eine XML-Datei zu erzeugen, wäre ein Script erforderlich.

Zum Beispiel wird aus einer Tabelle geliefert:

AutorTitel
----------
Heinrich MannDer Untertan
Thomas MannBuddenbrooks: Verfall einer Familie

Daraus soll eine XML-Datei mit der bekannten Struktur erzeugt werden.

  • Name: „Autor“, X-Path-Ausdruck „/catalog/book/author“
  • Name: „Titel“, X-Path-Ausdruck „/catalog/book/title“

Für dieses Beispiel benötigen Sie zwei gestaffelte XML-Objekte. Das erste wird das Result-Sets in einzelne XML-Elemente umwandeln, das zweite wird die Elemente in einem Dokument zusammenfassen:

Projektierung X-Path

  1. Die zu schreibenden Datensätze werden hier aus einer Datenbank abgefragt und an die X-Path-Elemente des ersten XML-Transferobjekts übergeben.

  2. Das XML-Objekt erzeugt den XML-Code. Das XML-Objekt enthält dazu die bekannten X-Path-Ausdrücke

    • Name: „Autor“, X-Path-Ausdruck „book/author“

    • Name: „Titel“, X-Path-Ausdruck „book/title“

      sowie die Grundstruktur

       <book>
    <author></author>
    <title></title>
    </book>

    Wichtig ist die Eigenschaft XML-Ausgabe = „Mehrere XML-Dokumente ausgeben“, damit jeder Datensatz aus der Datenbank ein eigenes Element wird.

    Die Struktur könnte zur Laufzeit auch dynamisch übergeben werden, z. B. aus einer Textdatei oder aus einer Datenbank.

  3. Der Code wird aus dem XML-Element an das X-Path-Element des zweiten XML-Transferobjekts übergeben. Dieses Objekt enthält nur die XML-Deklaration und das Root-Element:

    <?xml version="1.0"?>
    <catalog>
    </catalog>

    Mit der X-Path-Abfrage /catalog und der Eigenschaft XML-Ausgabe „In einem Dokument zusammenfassen“

  4. Der Code kann weiter übertragen werden. Hier wird ein Script-Transferobjekt verwendet, um eine Datei zu erzeugen. Dateipfad (Typ: String) und XML-Inhalt (Typ: Array, String) werden als Eingabeparameter übergeben:

       public override void Write()
    {
    StringBuilder stb = new StringBuilder();
    stb.AppendLine("<?xml version=\"1.0\"?>");
    foreach(string xml in XMLContent)
    {
    stb.AppendLine(xml.Substring(xml.IndexOf("?>")+2));
    }
    System.IO.File.WriteAllText(FilePath, stb.ToString());
    }