ich hab bisher noch nicht viel mit
XML gemacht und scheitere im Moment ein bisschen, wäre daher sehr nett, wenn ihr mir ein wenig helfen würdet.
meine
xml-Struktur:
Delphi-Quellcode:
<?
xml version="1.0" encoding="utf-8"?>
<Info>
<
Export>
<Documents>
<Document ID="12345" Extension="xxx">
<Indexe>
<
Index name="nr1">
<Gefundene Count="1">
<Gefunden>hallo</Gefunden>
</Gefundene>
</
Index>
</Indexe>
</Document>
<Document ID="23456" Extension="xxx">
<Indexe>
<
Index name="nr2">
<Gefundene Count="0"/>
</
Index>
</Indexe>
</Document>
</Documents>
<andereNode>
<Node Name="testnr">Test</Node>
<Node Name="testnr2">Test2</Node>
</andereNode>
</
Export>
</Info>
Mein Problem besteht nun darin, dass ich an ein bestimmtes Attribut eines Knoten kommen möchte und zwar "ID= " und wenn ich dann das richtige gefunden habe (dieses kommt mehrmals vor) dann möchte ich Index Name= auslesen und wenn Value <> 0 ist, dann auch Values auslesen.
Ich benutze in Delphi XMLDoc und XMLIntf und msxml2_TLB
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
xmlDomdoc : DomDocument40;
domNodelist : IXMLDomNodelist;
domNode : IXMLDomNode;
i : integer;
begin
xmlDomDoc:= CoDomDocument40.Create;
xmlDomDoc.load('D:\dev\Schillig\-XMLArchiver\Daten\export.xml');
domNodelist := xmlDomDoc.documentElement.selectNodes
('//Export/Documents/Document/');
for i := 0 to domNodelist.length - 1 do
begin
domNode:= domNodeList.item[i];
ShowMessage(domNode.nodeName);
if DomNode <> nil then
begin
//aber wie komme ich hier an das Attribut?
end;
domNode := DomNode.NextSibling; // zum nächsten Knoten auf der Ebene
end;
end;
Vielen Dank schon mal.
Susanne