Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie realisiere ich ein Konvertierung eines XML-Dokuments (https://www.delphipraxis.net/8327-wie-realisiere-ich-ein-konvertierung-eines-xml-dokuments.html)

chris_82 2. Sep 2003 13:52


Wie realisiere ich ein Konvertierung eines XML-Dokuments
 
Mit liegen zwei XML Schemata vor:
Delphi-Quellcode:
Die Schemata als grafische Darstellung:

1.
           /-lkno-----kno(0-unendlich)  
kno-------/
          \
           \-zus

2.
                            (Abschnittstyp]
                         **********************************************
                         *  /-hinw                                   *
                         * /                                          *
stl--------abschnitt------/                                           *
          (0-unendlich) * \                       *****************  *
                         *  \     /-Abschnitt-------Abschnittstyp *  *
                         *   \   /                 *****************  *
                         *    \-/                                     *
                         *      \                                     *
                         *       \                                    *
                         *        \tl (0-unendl.                      
                         **********************************************

und die dazugehörigen XML Dokumente.

Ich soll nun das eine XML Dokument in das andere umwandeln, dazu weiß ich welcher Knoten in dem einen zu welchem in dem anderen XML Dokument werden soll, dasselbe gilt für die Attribute.

Nun habe ich angefangen das Programm zu schreiben. Ich Lese immer einen Knoten aus und füge diesen dann in das andere Dokument ein.

Leider hab ich nicht darauf geachtet, das zb ein Abschnitt wieder einen Abschnitt bzw. ein kno wieder ein kno enthalten kann.

Wenn ich daher weiter so vorgehe wie bisher werde ich mit dem Progi nie Fertig, da ein Abschnitt ja wiederum unendlich viele Abscnitte enthalten kann.

Hier ein Bsp.Code wie ich es bisher mache:

Delphi-Quellcode:
xml_ziel.ChildNodes['Stlbzlb'].Childnodes[i].AddChild(c_Abschnitt);

xml_ziel.ChildNodes['Stlbzlb'].Childnodes[i].ChildNodes[j].Attributes['Bez']:=pkno_nodes[Lb_Leistungsbereich.ItemIndex].ChildNodes[0].ChildNodes[i].ChildNodes[0].ChildNodes[j].AttributeNodes['Bez'].Text;
Da ich ein Neuling in Sachen Delphi, auch in XML, bin bräuchte ich mal einen Tip wie ich es nun realisieren kann irgendwie etwas so allgemein zu definieren, das ich es falls eben innerhalb eines kno mit dem Attribut Typ='Knoten' wieder ein kno mit dem Attribut Typ='Knoten' auftritt diesen eben auch wieder auslese bzw. wieder einen Abschnitt schreibe.

Anderes, wenn es einen Knoten kno mit dem Attribut Typ gibt und der Wert des Attribut 'Knoten' ist, dann gibt es auch einen weiteren Abschnitt im anderen Dokument, falls es von einem anderen Typ ist gibt es zwar auch noch eine weitere Ebene, aber das ist dann die letze.

Kann man dies irgendwie mit Klassen realisieren oder mit Proceduren oder was habt ihr für eine Idee?

Bin für jeden Tip dankbar!!

PS: Will keinen vollständigen Quellcode (dazu sind es wohl eh zu wenig Angaben), aber ein kleines Bsp wär nett schlecht und eben Tipps :).

Danke!!

benutzte die msxml


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz