AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Knoten einfügen in xmldocument?
Thema durchsuchen
Ansicht
Themen-Optionen

Knoten einfügen in xmldocument?

Ein Thema von Grolle · begonnen am 20. Feb 2008 · letzter Beitrag vom 20. Feb 2008
Antwort Antwort
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

Knoten einfügen in xmldocument?

  Alt 20. Feb 2008, 18:14
Hallo,

kann mir jemand sagen, warum das nicht klappt?

Delphi-Quellcode:
  xmlDoc := NewXMLDocument;
  xmlDoc.Version := '1.0';
  xmlDoc.Encoding := 'iso-8859-1';
  xmlDoc.Active:=true;
  root := xmlDoc.AddChild('navigation');
  root.SetAttributeNS('project','','Testprojekt');
  SetLength(tempdata,5);
  for i := 0 to helplist.Count-1 do
    begin
      tempData := explode(';',helplist.Strings[i]);
      node := xmlDoc.DocumentElement.AddChild('test'+inttostr(i)); // hier sollten eigentlich die Knoten eingefügt werden!
      node.Text := 'Test'; // geht auch nicht mit root.AddChild('test'+inttostr(i));
      for j := 0 to high(tempdata) do
        begin
        end;
    end;
  
  xmlDoc.SaveToFile('C:\1.xml');
Die Knoten werden aber nicht eingefügt ?!?

Viele Grüße ...

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Knoten einfügen in xmldocument?

  Alt 20. Feb 2008, 19:04
Hallo Stefan,

die Knoten werden zuverlässig eingefügt. Schaust du vielleicht an der falschen Stelle nach?

Füge einfach zur Kontrolle nach der Schleife noch eine Zeile ein:

 ShowMessage(xmlDoc.XML.Text); Übrigens: Der Aufruf von NewXMLDocument() produziert ein Speicherleck.

Freundliche Grüße
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Knoten einfügen in xmldocument?

  Alt 20. Feb 2008, 19:10
Zitat von marabu:
die Knoten werden zuverlässig eingefügt. Schaust du vielleicht an der falschen Stelle nach?
Füge einfach zur Kontrolle nach der Schleife noch eine Zeile ein:
 ShowMessage(xmlDoc.XML.Text);
Das habe ich auch schon geprüft, aber im gespeicherten Dokument tauchen sie dann nicht auf!
Zitat von marabu:
Übrigens: Der Aufruf von NewXMLDocument() produziert ein Speicherleck.


Viele Grüße ...

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Knoten einfügen in xmldocument?

  Alt 20. Feb 2008, 19:19
Zitat von Grolle:
... Das habe ich auch schon geprüft, aber im gespeicherten Dokument tauchen sie dann nicht auf! ...
Bei mir schon.

Info zum Speicherleck - in D7 ist NewXMLDocument folgendermaßen implementiert:

Delphi-Quellcode:
function LoadXMLData(const XMLData: DOMString): IXMLDocument; overload;
begin
  Result := TXMLDocument.Create(nil);
  Result.LoadFromXML(XMLData);
end;
Die Instanz von TXMLDocument wird nirgendwo gespeichert - und ohne Owner fühlt sich dann niemand für das Freigeben des Speichers zuständig.
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Knoten einfügen in xmldocument?

  Alt 20. Feb 2008, 19:34
Zitat von marabu:
Zitat von Grolle:
... Das habe ich auch schon geprüft, aber im gespeicherten Dokument tauchen sie dann nicht auf! ...
Bei mir schon.
Habs jetzt nochmal getestet. Im gespeicherten Dokument steht immer nur der erste Knoten (navigation)?!?

Zitat von marabu:
Info zum Speicherleck - in D7 ist NewXMLDocument folgendermaßen implementiert:
Delphi-Quellcode:
function LoadXMLData(const XMLData: DOMString): IXMLDocument; overload;
begin
  Result := TXMLDocument.Create(nil);
  Result.LoadFromXML(XMLData);
end;
Die Instanz von TXMLDocument wird nirgendwo gespeichert - und ohne Owner fühlt sich dann niemand für das Freigeben des Speichers zuständig.
Ahhh, danke für die Info!

// Edit: Ich glaube, ich habe den Fehler gefunden. Resultierte aus einer übergeordneten Schleife! Thanks!

  Mit Zitat antworten Zitat
Antwort Antwort


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 10:40 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