Ich verstehe es nicht. Ich muss irgendwo etwas falsch machen, aber ich sehe nicht wo.
Ich habe folgende
XML-Datei:
XML-Code:
<importkennungen>
<DateMap default="Belegdatum">
<Form name="WEAR">Lieferschein_Datum</Form>
<Form name="KOAU">Belegdatum</Form>
</DateMap>
</importkennungen>
Jetzt will ich den Wert von
Form auslesen in Abhängigkeit vom Attribut
name, wenn dasnicht klapp, weil kein passendes Attribut gefunden wurde wurde, soll das Attribut von [u]DateMap[i] ausgelesen werden.
Der Code dazu sieht so aus:
Delphi-Quellcode:
s := Format('/importkennungen/DateMap/Form[@name="%s"]', [FormName]); // FormName = WEAR
XMLNode := XMLDoc.selectSingleNode(s);
// Formname gefunden, konfigurierten Wert nehmen
if Assigned(XMLNode) then
begin
result := XMLNode.text;
end
// FormName nicht gefunden Default-Wert nehmen
else
begin
XMLNode := XMLDoc.selectSingleNode('/importkennungen/DateMap/@default');
if Assigned(XMLNode) then
result := XMLNode.text;
end;
Aber XMLNode ist immer nil. Der XPath müsste aber stimmen oder habe ich da noch einen Fehler drinne? Ich verstehe es einfach nicht.
Der plöde Parser ist mit einem Umlaut in einem Kommentar nicht klar gekommen. Fiorefox hat es richtig angezeigt, aber der IE nicht.
Jetzt geht es.