AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TXMLDocument als result ausgeben

Ein Thema von Saulmann · begonnen am 7. Mai 2013 · letzter Beitrag vom 7. Mai 2013
Antwort Antwort
Saulmann

Registriert seit: 20. Okt 2012
7 Beiträge
 
#1

TXMLDocument als result ausgeben

  Alt 7. Mai 2013, 15:00
Hallo,

ich versuche gerade ein verändertes XML Dokument mithilfe des Results einer Funktion an eine Procedure zu übergeben.
Delphi-Quellcode:
procedure aendere_XML(name: string);
var
  XML: TXMLDocument;
begin
  XML.FileName := ExtractFileName(openDialog1.FileName);

  //mache etwas

  XML := generiere_neueXML(XML);
  XML.SaveToFile(name+'.xml');
end;

function generiere_neueXML(XML: TXMLDocument): TXMLDocument;
var
  XML_neu: TXMLDocument;
begin
  //fülle xml
  
  result := XML_neu;
end;
Doch leider funktioniert dies nicht.
Ich erhalte folgenden Fehler: EXMLDocError mit der Meldung 'Kein aktives Dokument' aufgetreten.

Wenn ich die XML gleich in der funktion speichere klappt dies aber. Kann mir jemand sagen woran das liegt?
Delphi-Quellcode:
procedure generiere_neueXML(XML: TXMLDocument, name: string);
var
  XML_neu: TXMLDocument;
begin
  //fülle xml -> ergibt xml_neu
  
  XML_neu.SaveToFile(name+'.xml');
end;

Geändert von Saulmann ( 7. Mai 2013 um 15:33 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.108 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TXMLDocument als result ausgeben

  Alt 7. Mai 2013, 15:10
http://docwiki.embarcadero.com/Libra....TXMLDocument:

Zitat:
Wenn eine TXMLDocument-Instanz ohne Eigentümer (Owner) erstellt wird, verhält sie sich wie ein Objekt mit Interface-Unterstützung. Die Freigabe der Instanz erfolgt dann automatisch, nachdem alle Referenzen auf ihr Interface freigegeben wurden. Wird ein TXMLDocument-Objekt mit Eigentümer erstellt, ist dieser wie bei jeder anderen Komponente für die Freigabe verantwortlich
Ich tippe mal, du hast es mit Owner=nil erstellt?
  Mit Zitat antworten Zitat
Saulmann

Registriert seit: 20. Okt 2012
7 Beiträge
 
#3

AW: TXMLDocument als result ausgeben

  Alt 7. Mai 2013, 15:34
@ Günther: update ... möglicherweise hatte ich zu wenig informationen gegeben.
Ich erstelle keine neue xml, sondern erweitere eine vorhandene xml-datei
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TXMLDocument als result ausgeben

  Alt 7. Mai 2013, 15:36
Es geht um

Delphi-Quellcode:
XML_neu := TXMLDocument.Create;
XML_neu.Owner := ????
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.059 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TXMLDocument als result ausgeben

  Alt 7. Mai 2013, 16:00
Ändere mal die Definitionen von der Klasse auf das Interface.
TXMLDocument -> IXMLDocument aus XMLIntf.pas.
Einfach zu erzeugen durch newXMLDocument aus XMLDoc.pas.

Ich habe noch nie direkt mit der XML-Klasse gearbeitet.
Wahrscheinlich gibt sich bei dir irgendetwas selber frei?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.108 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TXMLDocument als result ausgeben

  Alt 7. Mai 2013, 16:09
Ja, ich dachte das geht aus dem Hilfe-Zitat so hervor?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 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