Ich muss mich da mal dranhängen. Ich habe folgendes
XML Dokument:
XML-Code:
<importkennungen>
<zeitraum jahr="2006">
<doktyp kennung="11A13">
<ziel print="true">(#DATAWERK)\AUSGHEIN</ziel>
</doktyp>
<doktyp kennung="11A14">
<ziel>(#BUNG06)\AUSGNUNG</ziel>
</doktyp>
<doktyp kennung="11B14">
<ziel>(#BUNG06)\EINGNUNG</ziel>
</doktyp>
<doktyp kennung="11B01" MapField="Vorgang" fromChar="0" Length="5" FormularFilter="WEAR" SearchFieldName="Vorgang">
<ziel>(#BUNG06)\EINGNUNG</ziel>
</doktyp>
<doktyp kennung="EB" MapField="BA" fromChar="0" Length="2" FormularFilter="KOAU" SearchFieldName="Rg-Nr">
<ziel>(#BUNG06)\EINGNUNG</ziel>
</doktyp>
<doktyp kennung="ZV" MapField="BA" fromChar="0" Length="2" FormularFilter="KOAU" SearchFieldName="Belegnummer">
<ziel>(#BUNG06)\EINGNUNG</ziel>
</doktyp>
</zeitraum>
</importkennungen>
zeitraum kann auch 2003 oder 2004 oder so sein. Das ist nur ein Auschnitt. Ich will jetzt alle Unterknoten itterieren, die sich unterhalb eines Zeitraumes mit einem bestimmten Jahr befinden:
Delphi-Quellcode:
s := Format('//zeitraum[@jahr="%s"]', [Year]); //Year = 2006
Nodes := FXMLDoc.selectNodes(s);
for i := 0 to Nodes.length - 1 do
begin
Node := Nodes.item[i];
s := Node.selectSingleNode('doktyp/@kennung').nodeValue;
DebugLog('Knoten', s);
end;
Nutr leider ist Nodes-length = 1, sollte aber sechs sein.