Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Problem mit Funktion - Knoten suchen in XML (https://www.delphipraxis.net/119154-problem-mit-funktion-knoten-suchen-xml.html)

Grolle 26. Aug 2008 10:13

Re: Problem mit Funktion - Knoten suchen in XML
 
Hallo,

im Moment lese ich es ja nicht nur aus, sondern baue es auf. Ich vermute,
dass da irgendwo der Fehler liegt. Im Prinzip soll es so funktionieren:
Knoten erstellen, falls Unterknoten mit Text "xyz" existiert weiter,
wenn nicht Unterknoten erzeugen.

Viele Grüße ...

marabu 26. Aug 2008 10:18

Re: Problem mit Funktion - Knoten suchen in XML
 
Hallo Stefan,

Textknoten mit einem bestimmten Inhalt kannst du so suchen:

Delphi-Quellcode:
var
  i: Integer;
  nl: IDOMNodeList;
begin
  with XMLDocument.DOMDocument as IDOMNodeSelect do
    nl := selectNodes('//*[text() = "SuchText"]');
  for i := 0 to Pred(nl.length) do
    with nl[i] as IDOMNodeEx do
      ShowMessage(XML);
end;
Freundliche Grüße

Grolle 26. Aug 2008 10:32

Re: Problem mit Funktion - Knoten suchen in XML
 
Hallo,

danke für eure Antworten. Habe jetzt die Lösung für mich gefunden:
Delphi-Quellcode:
  function searchNodes(nx : IXMLNode; match : widestring) : boolean;
  var
  x : integer;
  begin
    result := false;
    for x := 0 to nx.ChildNodes.Count - 1 do
    begin
      if (nx.ChildNodes[x].IsTextElement) and (nx.ChildNodes[x].NodeValue = match) then
        result := true;
    end;
  end;
@Marabu
ich nehme an deine Lösung verwendet xpath und ist somit noch schneller? Muss ich mir nochmal
genauer ansehen!

Viele Grüße ...

DeddyH 26. Aug 2008 10:41

Re: Problem mit Funktion - Knoten suchen in XML
 
Wenn Du nach der Result-Zuweisung noch mit break aus der Schleife springst, ist Deine Variante vermutlich auch schneller. Willst Du break vermeiden, musst Du eine andere Schleife verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
Seite 2 von 2     12   

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