Ich habe folgendes
XML Dokument:
XML-Code:
<importkennungen>
<zeitraum jahr="2007">
<doktyp kennung="11A11">
<ziel>(#BUNG07)\Firma2\Lieferschein</ziel>
<aliasliste>
<alias>BELEMMER025=1033</alias>
<alias>AULIEMER042=1021</alias>
<alias>GESCEICH026=1034</alias>
<alias>UNTEEICH027=1035</alias>
<alias>LIEFMMER029=1037</alias>
<alias>KUNDMMER032=1040</alias>
<alias>KUNDNUNG033=1041</alias>
<alias>KUNDNUNG035=1042</alias>
<alias>PLZKUNDE036=1043</alias>
<alias>ORTKUNDE037=1044</alias>
<alias>MATCUNDE038=1045</alias>
<alias>BELEATUM039=1046</alias>
</aliasliste>
</doktyp>
Jetzt wollte ich gerne alles Aliase in eine StringListe laden:
Delphi-Quellcode:
s := Format('/importkennungen/zeitraum[@jahr="%s"]/doktyp[@kennung="%s"]/aliasliste', [year, doctype]);
XMLDomList := XMLDoc.selectNodes(s); // var XMLDomList : IXMLDOMNodeList;
ValueList := TStringList.Create;
try
for i := 0 to XMLDomList.length - 1 do
begin
s := XMLDomList.item[i].nodeValue;
ValueList.Add(s)
end;
Ich dachte jetzt eigentlich, dass ich alle <alias>-Knoten ind er XMLDomList hätte und ich die eibfach in einer Schleife durchgehen könnte. Dem scheint aber nicht so zu sein, da sie nur die Länge von eins hat, was nicht sein kann. Wo liegt also der Fehler?
Ich habe es jetzt so:
Delphi-Quellcode:
s := Format('/importkennungen/zeitraum[@jahr="%s"]/doktyp[@kennung="%s"]/aliasliste', [year, doctype]);
XMLDomList := XMLDoc.selectNodes(s);
ValueList := TStringList.Create;
try
for i := 0 to XMLDomList.length - 1 do
begin
XMLNode := XMLDomList.item[i].selectSingleNode('alias');
ValueList.Add(XMLNode.text);
end;
Aber ich bekomme trotzdem immer nur den ersten Alias.