![]() |
Wie ein XML-Objekt an eine Klasse zurückgeben?
Hallo.
Ich habe folgendes Problem: Ich habe 2 Objekte (beide von TObject abgeleitet) Das erste nimmt einen XML-String entgegen. Es erzeugt daraufhin mit dem MSXML-Parser ein XML-Objekt und parst den String. Nun werden ein parr Tags ausgelesen. Aber jetzt mein Problem: Das XML-Objekt soll dem 2 Objekt übergeben werden. Also hatt das 2 Objekt nun eine Kopie des XML-Objekts. Damit arbeitet das 2 Objekt (verändert ein parr Tags). Nun möchte ich aber die beiden XML-Objekte wieder zusammenbringen (zum Speichern). Wie mache ich das?
Delphi-Quellcode:
Objekt2
procedure TObjekt1.XML(Sender: TObject, Text: String);
var XMLObjekt : IXMLDocument; XMLObjekt2 : IXMLDocument; Objekt2: TObjekt2; begin XMLObjekt := newXMLDocument; XMLObjekt.LoadfromXML(Text); //Hier wird nun mit dem Objekt gearbeitet //Das 2. Objekt wird erzeugt Objekt2 := TObjekt2.Create; Objekt2.XML := XMLObjekt; //Aus dem 2. Objekt wird das XML-Objekt geholt XMLObjekt2 := newXMLDocument; XMLObjekt2 := Objekt2.XML //Wie kann ich jetzt sagen: nimm den Inhalt von XMLObjekt2, und kopiere ihn nach XMLObjekt1??
Delphi-Quellcode:
TObjekt2 = class
private XMLObjekt : IXMLDocument; procedure XML(uebergabe: IXMLDocument); public property XML: IXMLDocument read XMLObjekt write XML; end; procedure TObjekt2.XML(uebergabe: IXMLDocument); begin self.XMLObjekt := newXMLDocument; self.XMLObjekt := uebergabe; //Hier wird nun auch mit dem Objekt gearbeitet. Neue Attribute werden gespeichert end; |
Re: Wie ein XML-Objekt an eine Klasse zurückgeben?
Du arbeitest mit Interfacezeigern also arbeiten beide Objekte mit dem gleichen XML-Dokument. Du hast keine Kopie deines XML-Dokuments angelegt.
P.S. Property Getter und SetterMethoden sollten als Namen den Propertynamen mit vorgestellten Set bzw. Get haben:
Delphi-Quellcode:
property XML: IXMLDocument read GetXML write SetXML;
|
Re: Wie ein XML-Objekt an eine Klasse zurückgeben?
Das war die Lösung.
Hatte wohl nen Brett vorm Kopf :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz