Hi @all...
Wie man
XML Files erstellt weiss ich und krieg das auch prima hin, nur hab ich noch nie eine Datei bearbeiten müssen...
Ich möchte gerne eine bestehende
XML Datei laden und ein Child an den Rootnode anfügen, nur leider keine Ahnung wie... ich hab schon tage damit verbracht aber kriegs nicht hin. Hier mein Code:
Delphi-Quellcode:
procedure addrow(strFilepath, strUser:
String);
var
xmlDoc: msDOMDocument;
instr: IXMLDOMProcessingInstruction;
nsDef: WideString;
root,nNode: IXMLDOMNode;
begin
nsdef := '
http://innosolv.ch/namespace/isag';
xmlDoc := CoDOMDocument40.Create;
if (fileexists(strFilepath) = false)
then
begin
// Microsoft Document Object Model - create document
xmlDoc := CoDOMDocument40.Create;
// create Rootnode
root := xmlDoc.createElement('
FileCheckList');
// define processing instructions
instr := xmlDoc.createProcessingInstruction('
xml', '
version="1.0" encoding="utf-8"');
xmlDoc.appendChild(instr);
// define rootnode and namespaces
with root
as IXMLDOMElement
do
begin
setAttribute('
xmlns:xsd', '
http://www.w3.org/2001/XMLSchema');
setAttribute('
xmlns:xsi', '
http://www.w3.org/2001/XMLSchema-instance');
setAttribute('
xmlns', nsDef);
end;
// assign rootnode
xmlDoc.appendChild(root);
// create the file
xmlDoc.save(strFilepath);
end;
xmlDoc.loadXML(strFilepath);
root := xmlDoc.documentElement.firstChild;
nNode := root.appendChild(xmlDoc.createNode(NODE_ELEMENT,'
ChildNode',nsdef));
nNode.text := strUser;
xmlDoc.save(strFilepath);
end;