![]() |
XML Document nach betimmten Knoten/Attributen durchsuchen
Wie durchsuche ich ein XML Dokument nach bestimmen Knoten bzw Attributen in einem bestimmten Knoten und greife auf diesen zu. Wie kann ich den Wert dieser Attribute in einer Listbox darstellen?
benutze: MSXML |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
Hi chris_82,
dazu nutzt du die XSL. Damit kannst du gezielt nach Nodes suchen. Wenn du nach einfachen Nodes nach dem Textinhalt suchen willst dann reicht das hier z.B.:
Code:
Um nach Attributen zu suchen würde folgendes Beispiel funktionieren:
/rootElement/Node[subNode="Mein Text der subNode"]
Code:
Diese XSL (am besten in Variable speichern) nutzt du dann beim verwenden von selectSingleNode bzw. selectNodes.
/rootElement/Node/SubNode[@attr="AttrValue"]
Ich hoffe, ich habe keinen Fehler gemacht und dass alles funktioniert! Chris |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
XSL??
bin ein absoluter beginner in sachen xml und delphi, kann man nciht einfach irgendwie über xmldocumetn auf einen bestimmten knoten zugreifen? |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
Doch. Das XSL ist eigentlich sowas wie eine SQL-Query. Also nur ein String. ;)
Delphi-Quellcode:
Chris
var
xsl: string; {...} xsl := '/Die/Obige/XSL[name="value"]'; // das was da oben steht; xmlDoc.documentElement.selectSingleNode(xsl); |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
Zitat:
Damit beide Abfragen was zurückliefern muss das XML-Dok so aussehen?
Code:
Die erste Abfrage ist klar. Mir gehts hier um die Attribute.
<rootelement>
<Node> <subNode attr="AttrValue">Mein Text der subNode</subNode> </Node> </rootelement> Müssen vielleicht alle subNode - Tags das attr-Attribut besitzen??? grüße, daniel |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
Hi,
nein, müssen nicht. Außer du definierst es so in der DTD. Chris |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
Als Ergänzung: zurückgeliefert werden dann eben nur die Knoten, die das Attribut haben.
|
Re: XML Document nach betimmten Knoten/Attributen durchsuche
So möchte ich es ja haben. Ich bekomme nämlich nix zurück.
Mein xml-File sieht so aus:
Code:
Jetzt möchte ich die Knoten haben, bei denen Benutzt gleich ja ist
<?xml version="1.0" encoding="iso-8859-1"?>
<werte> <eintrag> <id>1</id> <gasart>202</gasart> <geraet>O2</geraet> <grenzwert benutzt="ja">99.5</grenzwert> <warnwert>99.8</warnwert> <toleranz>20</toleranz> <einheit>%</einheit> </eintrag> <eintrag> <id>2</id> <gasart>201</gasart> <geraet>CO</geraet> <grenzwert benutzt="nein">0</grenzwert> <warnwert>0</warnwert> <toleranz>0</toleranz> <einheit></einheit> </eintrag> </werte>
Delphi-Quellcode:
bei mir ist Eintraege.length immer 0, was mach ich falsch?
var eintraege: IXMLDOMNodeList;
subNode: IXMLDOMNode; i : integer; begin eintraege := xmlDoc.documentElement.selectNodes('werte/eintrag/grenzwert[@benutzt="ja"]'); for i := 0 to eintraege.length - 1 do begin ... end; end; grüße, daniel |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
Vor dem werte fehlt ein /. ;)
Chris |
Re: XML Document nach betimmten Knoten/Attributen durchsuche
Yo. Weil der Parser durch
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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-2025 by Thomas Breitkreuz