Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Wie ein XML-Objekt an eine Klasse zurückgeben? (https://www.delphipraxis.net/66354-wie-ein-xml-objekt-eine-klasse-zurueckgeben.html)

McMorton 28. Mär 2006 22:13


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:
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??
Objekt2
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;

Bernhard Geyer 29. Mär 2006 07:10

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;

McMorton 29. Mär 2006 21:57

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