Hallo ToKo,
Ausgabe1
muss bei dir leer sein, da deine Elemente keine Textknoten besitzen. Das Löschen mit xmlDoc.removeChild() dürfte nicht funktionieren, da die Methode nur einen direkt untergeordneten Knoten entfernen kann. Mach es besser so:
SelectedNode.parentNode.removeChild(SelectedNode);
Deine XPATH Ausdrücke kannst du noch weiter vereinfachen, da deine Knoten je nach Typ immer auf der selben Ebene angesiedelt sind:
Delphi-Quellcode:
function TfrmMain.DiskNode(diskID: integer): IXMLDOMNode;
var
xp: string;
begin
if Assigned(xmlDoc) then begin
xp := Format('//cd[@id="%d"]', [diskID]);
Result := xmlDoc.selectSingleNode(xp);
end
else Result := nil;
end;
function TfrmMain.TrackNode(diskNode: IXMLDOMNode; trackID: integer): IXMLDOMNode;
var
xp: string;
begin
if Assigned(diskNode) then begin
xp := Format('track[@id="%d"]', [id]);
Result := diskNode.selectSingleNode(xp);
end
else Result := nil;
end;
Grüße vom marabu