Einzelnen Beitrag anzeigen

Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#1

bestimmte XML-Nodes auslesen

  Alt 23. Jun 2006, 09:02
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
Susanne
  Mit Zitat antworten Zitat