AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

AddChild funktioniert nicht

Ein Thema von aegidos · begonnen am 22. Jan 2008 · letzter Beitrag vom 23. Jan 2008
Antwort Antwort
aegidos

Registriert seit: 30. Okt 2007
40 Beiträge
 
Delphi 2007 Professional
 
#1

AddChild funktioniert nicht

  Alt 22. Jan 2008, 12:57
Hallo,
Ich habe ein Problem, mein Programm soll eigentlich in eine existente XML-Datei einen Knoten einhängen tut dies aber nicht. Ich habe keine Ahnung woran das liegen kann.

Delphi-Quellcode:
procedure Programm.AddToValidate(text: String);
var
XMLDocument1: IXMLDocument;
iNode : IXMLNode;
strDummy :String;
b_flag : bool;
begin
     strDummy := 'C:\validate.xml';
     strDummy := StringReplace(strDummy, '/', '\', [rfReplaceAll, rfIgnoreCase]);
     if( FileExists(strDummy) = true) then
     begin
     XMLDocument1 := TXMLDocument.Create(strDummy);
     //XMLDocument1.Filename:=strDummy;
     XMLDocument1.Active := true;
     XMLDocument1.DocumentElement.AddChild('mat');
     b_flag := XMLDocument1.DocumentElement.HasChildNodes;

     iNode := XMLDocument1.DocumentElement;
     XMLDocument1.DocumentElement.ChildNodes.FindNode( 'valid_serial' ).AddChild('materialnr');
     XMLDocument1.DocumentElement.ChildNodes.FindNode('valid_serial').ChildNodes.FindNode('materialnr').Text := text;
     XMLDocument1.SaveToFile('strDummy');
     end;
end;
In diese XML Datei soll die Materialnummer eingehängt werden:
Delphi-Quellcode:
<validate>
<valid_serial>
</valid_serial>
</validate>
Tausend Dank jetzt schonmal
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: AddChild funktioniert nicht

  Alt 22. Jan 2008, 13:47
Hi,

du hattest mehrere kleine Fehler drin. Dein Hauptproblem wird gewesen sein, dass dein XMLDocument keinen Owner hatte. Hier einmal der korrigierte Source:

Delphi-Quellcode:
procedure AddToValidate(text: string);
var
  XMLDocument1: TXMLDocument; // Fehler 1
  iNode: IXMLNode;
  strDummy: string;
  b_flag: bool;
begin
  strDummy := 'C:\validate.xml';
  strDummy := StringReplace(strDummy, '/', '\', [rfReplaceAll, rfIgnoreCase]);
  if (FileExists(strDummy) = true) then
  begin
    XMLDocument1 := TXMLDocument.Create(Application); // Fehler 2
    XMLDocument1.LoadFromFile(strDummy); // Fehler 2

    XMLDocument1.Active := True;
    XMLDocument1.DocumentElement.AddChild('mat');
    b_flag := XMLDocument1.DocumentElement.HasChildNodes;

    iNode := XMLDocument1.DocumentElement;
    XMLDocument1.DocumentElement.ChildNodes.FindNode('valid_serial').AddChild('materialnr');
    XMLDocument1.DocumentElement.ChildNodes.FindNode('valid_serial').ChildNodes.FindNode('materialnr').Text := text;
    XMLDocument1.SaveToFile(strDummy); // Fehler 3
  end;
end;
Ansgar
  Mit Zitat antworten Zitat
aegidos

Registriert seit: 30. Okt 2007
40 Beiträge
 
Delphi 2007 Professional
 
#3

Re: AddChild funktioniert nicht

  Alt 23. Jan 2008, 07:13
Fantastisch,
Danke für die schnelle und gute Hilfe. Es läuft nun einwandfrei und ich freu mich wie ein Schneekönig
Danke Danke Danke!
  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:00 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