Hallo und frohe Weihnachten auch von mir.
Ich würde folgendermaßen an das Problem rangehen:
Nutze XPath und du kommst mit wenigen Zeilen Code aus.
Deinen gewollten Error-Node bekommst du über:
aErrorNode := myDocument.documentElement.selectSingleNode( 'error[id="123"]' );
An Text und Action kommst du dann ganz bequem über:
Delphi-Quellcode:
aTextNode := aErrorNode.selectSingleNode( 'text' );
if ( nil <> aTextNode ) then
sText := aTextNode.text;
... für Action das Selbe in grün ...
Gruß