Dein Weg um Attribute zu erzeugen kommt mir reichlich kompliziert vor.
Warum nicht so?
Delphi-Quellcode:
for iINdex:=0 to oNodeBlub.length-1 do begin
oNode:=oNodeBlub.item[iINdex];
oNode:=oNode.parentNode;
oNode.setAttribute('xsi:type','BlubTyp');
end;
Attribute gibt es ja im Gegensatz zu Elementen nur einmal.
Deshalb kann man sie einfach setzen (und damit einen neuen Knoten im
DOM erzeugen).
Deinen XPath - Ausdruck '//BlubId' kann man bestimmt noch verbessern.
Im Moment sagt er ja
"gibt mir alle <BlubId> - Elemente zurück".
Was du wirklich brauchst wäre:
"Gib mir alle <Blub> - Elemente zurück, die ein <BlubId> - Element enthalten".
Damit lässt sich die Schleife nochmals vereinfachen.
Vielleicht so '//BlubId/..' oder '//BlubId/parent::Blub' ?