Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#1

createNode, IXMLDOMDocument - Node hinzufügen

  Alt 5. Jul 2009, 18:57
Hi,

ich bekomme es einfach nicht gebacken mit dem XML!

Ich habe hier ein XML:
Code:
   <group Name="Programs">
      <program location="C:\windows\notepad.exe">
         <StartDelay>5</StartDelay>
      </program>
   </group>
Nun möchte ich ein weiteres Programm hinzufügen.
So z.B:
Code:
   <group Name="Programs">
      <program location="C:\windows\notepad.exe">
         <StartDelay>5</StartDelay>
      </program>
      <program location="C:\windows\mspaint.exe">
         <StartDelay>5</StartDelay>
      </program>      
   </group>
Nun versuche ich die ganze Zeit mit createNode das hinzuzufügen, klappt aber nicht!

Delphi-Quellcode:
function AddNodeToXML(const XmlFilePath: string; AppPath: String; Delay : Integer): boolean;
var
  doc: IXMLDOMDocument;
  xHTPCNoteNode, xHTPCNodeChild: IXMLDOMNode;
  xHTPCNodes: IXMLDOMNodeList;
begin

  doc := CoDOMDocument.Create;
  with doc do
  begin
    async := false;
    load(XmlFilePath); // can fail
  end;

  xHTPCNoteNode := doc.selectSingleNode('//group[@Name="Programs"]');

  xHTPCNoteNode := xHTPCNoteNode.appendChild(doc.createNode(NODE_ELEMENT, 'program', AppPath));

  doc.save(XmlFilePath);
end;
rauskommen tut aber:
Code:
   <group Name="Programs">
      <program location="C:\windows\notepad.exe">
         <StartDelay>5</StartDelay>
      </program>
            <program xmlns="c:\windows\mspaint.exe">
         <StartDelay xmlns="5"/>
      </program>
   </group>
Wo setze ich den Attributnamen? xmlns? Wie bekomme ich das "Delay" in den nodeValue?

Kann mir da jemand helfen!?
  Mit Zitat antworten Zitat