Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create an XML file using TXML Document in Delphi 7

Tags:

delphi

I have used the following code to create the XML Document :

procedure TForm1.btnCreateXMLClick(Sender: TObject);
  var
   rootName:string;
  childName:string;
  attrChild:string;
   iXml: IDOMDocument;
  iRoot, iNode, iNode2, iChild, iAttribute: IDOMNode;
begin
  XMLDoc.Active:=false;
   XMLDoc.XML.Text:='';
   XMLDoc.Active:=true;
    XMLDoc.FileName:='C:\Documents and Settings\a\Desktop\New Text Document.xml';
     iXml := XmlDoc.DOMDocument;
   //iRoot:=iXml.documentElement(iXml.createElement('xml'));
    iRoot := iXml.appendChild(iXml.createElement ('xml'));
     // node "test"
     iNode := iRoot.appendChild (iXml.createElement ('test'));
      iNode.appendChild (iXml.createElement ('test2'));
   iChild := iNode.appendChild (iXml.createElement ('test3'));
    iChild.appendChild (iXml.createTextNode('simple value'));
     iNode.insertBefore (iXml.createElement ('test4'), iChild);

   // node replication
     iNode2 := iNode.cloneNode (True);
  iRoot.appendChild (iNode2);

    // add an attribute
      iAttribute := iXml.createAttribute ('color');
        iAttribute.nodeValue := 'red';
      iNode2.attributes.setNamedItem (iAttribute);

    // show XML in memo
      memXMLOutput.Lines.Text:=FormatXMLData(XMLDoc.XML.Text);
   end;

I get the output in memXMLOutput but the XML document does not show the output when seen in Notepad ot IE. where is the problem? Thanks in advance

like image 471
CyprUS Avatar asked Jul 08 '11 13:07

CyprUS


1 Answers

Remove this:

XMLDoc.FileName:='C:\Documents and Settings\a\Desktop\New Text Document.xml';

and add something like this after the code is done creating the XML document:

XMLDoc.SaveToFile('C:\Documents and Settings\a\Desktop\New Text Document.xml');
like image 94
Cosmin Prund Avatar answered Sep 18 '22 21:09

Cosmin Prund