AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi xmlDocument - wie zum teufel soll das funktionieren
Thema durchsuchen
Ansicht
Themen-Optionen

xmlDocument - wie zum teufel soll das funktionieren

Ein Thema von meisteralex · begonnen am 29. Sep 2007 · letzter Beitrag vom 13. Okt 2007
Antwort Antwort
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#1

xmlDocument - wie zum teufel soll das funktionieren

  Alt 29. Sep 2007, 13:45
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ß ???
  Mit Zitat antworten Zitat
marabu

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

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 29. Sep 2007, 13:55
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
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#3

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 29. Sep 2007, 14:16
wer soll dann der owner sein und warum darf der nicht nil sein ?
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#4

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 29. Sep 2007, 14:28
daran lags übrigens auch nicht
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#5

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 29. Sep 2007, 14:49
Welche Units hast du eingebunden?
Versuch mal bitte anstatt

Delphi-Quellcode:
var
  xml:TXMLDocument;
Delphi-Quellcode:
var
  xml: IXMLDocument;
zu verwenden.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 29. Sep 2007, 15:46
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
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
marabu

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

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 30. Sep 2007, 08:34
Hi,

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 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
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#8

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 30. Sep 2007, 11:13
also es lag tatsächlich daran, dass ich statt TXMLDocument IXMLDocument genommen habe !?!?!?
Warum weiß ich nicht, aber jetzt funktioniert es...
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#9

Re: xmlDocument - wie zum teufel soll das funktionieren

  Alt 13. Okt 2007, 09:41
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.
  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 17:30 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