Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: XML Find Node with Attribute

  Alt 19. Mär 2010, 21:31
Du könntest das mit XPath lösen.
Mit XPath kann man wie mit einem Filter einen oder mehrere Knoten aus der Gesamtmenge rausholen.
Beispiele für XPath-Ausdrücke:
liefert alle Elemente namens "data", die das Attribut "cname" haben
Code:
//data[@cname]
liefert alle Elemente namens "data", bei denen das Attribut "cname" den Wert 123 hat.
Code:
//data[@cname="123"]
Viele Parser haben XPath-Unterstützung. Die genaue Syntax ist von Parser abhängig.
Delphi-Quellcode:
// Knoten mit XPath selektieren
nodelist := rootelement.SelectNodes('//data[@cname="123"]');
for i := 0 to nodelist.count-1 do // über alle Knoten
begin
  node := nodelist.Item[i];
  // z.B. wird hier ein neues Attribut gesetzt
  (node as IXMLElement).SetAttribute('idx', inttoStr(i));
end;
  Mit Zitat antworten Zitat