Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi xmlDocument - wie zum teufel soll das funktionieren (https://www.delphipraxis.net/100520-xmldocument-wie-zum-teufel-soll-das-funktionieren.html)

meisteralex 29. Sep 2007 14:45


xmlDocument - wie zum teufel soll das funktionieren
 
boar ich hab jetzt ehrlich schon alles ausprobiert, hier mein code

Delphi-Quellcode:
procedure parse_xml(str_xml_f:string);
var
i,j:integer;
xml:TXMLDocument;
node: IXMLNode;
begin
  xml := TXMLDocument.Create(nil);
//try

  log('Parsing: "' + str_xml_f + '"');
  xml.XML := frm_main.mem_xml.Lines;
  xml.Active := True;

  //Alle RootItems ermitteln

  log(xml.DocumentElement.ChildNodes['settings'].ChildNodes['title'].Text);
 // log(IntToStr(xml.ChildNodes.Count));



//except
  //on E: Exception  do log('Parsing:Error: ' + E.Message);
//end;
  xml.free;
end;
mein xml code ist

Delphi-Quellcode:
<?xml version="1.0" ?>
<thema>
  <settings>
    <title>neues Thema im XML Forum</title>
    <startDate>1.10.2002</startDate>
    <author>Hagbard Celine</author>
  </settings>
  <content>
  asfd
  </content>
</thema>

es gibt egal was ich machen, ob ich nun über strings oder indexe drauf zugreife immer zugriffsverletzungen !!

was soll der scheiß ???

marabu 29. Sep 2007 14:55

Re: xmlDocument - wie zum teufel soll das funktionieren
 
Hallo,

du darfst den Owner von TXMLDocument nicht auf nil setzen.

Zum Sprachgebrauch: Es gibt nur einen RootNode und der ist das documentElement.

Grüße vom marabu

meisteralex 29. Sep 2007 15:16

Re: xmlDocument - wie zum teufel soll das funktionieren
 
wer soll dann der owner sein und warum darf der nicht nil sein ?

meisteralex 29. Sep 2007 15:28

Re: xmlDocument - wie zum teufel soll das funktionieren
 
daran lags übrigens auch nicht

semo 29. Sep 2007 15:49

Re: xmlDocument - wie zum teufel soll das funktionieren
 
Welche Units hast du eingebunden?
Versuch mal bitte anstatt

Delphi-Quellcode:
var
  xml:TXMLDocument;
Delphi-Quellcode:
var
  xml: IXMLDocument;
zu verwenden.

Daniel 29. Sep 2007 16:46

Re: xmlDocument - wie zum teufel soll das funktionieren
 
Ich frage mich, warum Du mit dem "Versuch und Fehler" - Verfahren arbeitest und Dir nicht eben eines der unzähligen XML-Tutorials durchliest:

http://www.delphipraxis.net/internal...ect.php?t=8184
http://www.delphipraxis.net/internal...ct.php?t=98795
http://www.delphipraxis.net/internal...ct.php?t=61938

marabu 30. Sep 2007 09:34

Re: xmlDocument - wie zum teufel soll das funktionieren
 
Hi,

Zitat:

Zitat von meisteralex
wer soll dann der owner sein und warum darf der nicht nil sein ?

als Owner kannst du Application verwenden. Beim Aufruf ohne Owner musst du laut Dokumentation mit der Schnittstelle IXMLDocument arbeiten. Leider hat TXMLDocument eine Implementierungsschwäche, die bei dieser Vorgehensweise zu memory leaks führt. Wer das Risiko bewerten kann, der darf so arbeiten. Für alle anderen sollte gelten: Owner nicht nil setzen. Sorry, falls ich dich in die falsche Schublade gesteckt haben sollte.

Zitat:

Zitat von meisteralex
daran lags übrigens auch nicht

Sehr interessant - lass mich von dir lernen: An was lag es denn?

Delphi-Quellcode:
procedure parse_xml(const markup: string);
var
  i, j: Integer;
  dom: TXMLDocument;
  node: IXMLNode;
begin
  with TXMLDocument.Create(Application) do
  try
    XML.Text := markup;
    try
      Active := True;
      ShowMessage(DocumentElement.ChildNodes['settings'].ChildNodes['title'].Text);
    except
      on E: Exception do
        ShowMessage(E.Message);
    end;
  finally
    Free;
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  parse_xml(Memo.Text);
end;
Freundliche Grüße

meisteralex 30. Sep 2007 12:13

Re: xmlDocument - wie zum teufel soll das funktionieren
 
also es lag tatsächlich daran, dass ich statt TXMLDocument IXMLDocument genommen habe !?!?!?
Warum weiß ich nicht, aber jetzt funktioniert es... :gruebel:

semo 13. Okt 2007 10:41

Re: xmlDocument - wie zum teufel soll das funktionieren
 
ja, das wunderte mich vor ner weile auch und war hier schon öfter das problem.
interessiert mich auch mal was genau da vor sich geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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 by Thomas Breitkreuz