我的用的是Delphi5 + WinXP
我这有一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
XmlDoc: IXMLDomDocument;
xmlStr: string;
fp: integer;
root,Node,ChildNode: IXMLDOMNode;
begin
XmlDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument; //对XmlDoc对象操作
root := XmlDoc.CreateElement('breakfast_menu');
XmlDoc.AppendChild(root);
Node := XmlDoc.CreateElement('food');
root.AppendChild(Node); //name
ChildNode := XmlDoc.CreateElement('name');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('Belgian Waffles')); //price
ChildNode := XmlDoc.CreateElement('price');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('$5.95')); //description
ChildNode := XmlDoc.CreateElement('description');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('two of our famous Belgian'));
//calories
ChildNode := XmlDoc.CreateElement('calories');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('650')); XmlDoc.Save('Text.xml');
End;
网上找来的。试了。可是~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
没有“<?xml version="1.0" encoding="ISO-8859-1" ?> ”这个头,怎么办?
我这有一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
XmlDoc: IXMLDomDocument;
xmlStr: string;
fp: integer;
root,Node,ChildNode: IXMLDOMNode;
begin
XmlDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument; //对XmlDoc对象操作
root := XmlDoc.CreateElement('breakfast_menu');
XmlDoc.AppendChild(root);
Node := XmlDoc.CreateElement('food');
root.AppendChild(Node); //name
ChildNode := XmlDoc.CreateElement('name');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('Belgian Waffles')); //price
ChildNode := XmlDoc.CreateElement('price');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('$5.95')); //description
ChildNode := XmlDoc.CreateElement('description');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('two of our famous Belgian'));
//calories
ChildNode := XmlDoc.CreateElement('calories');
Node.AppendChild(ChildNode);
ChildNode.AppendChild(XmlDoc.CreateTextNode('650')); XmlDoc.Save('Text.xml');
End;
网上找来的。试了。可是~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
没有“<?xml version="1.0" encoding="ISO-8859-1" ?> ”这个头,怎么办?
assignFile(F,'aaa.xml');
rewrite(f);
writeln(F,'<?xml version="1.0" encoding="UTF-8" ?>');
writeln(F,'<breakfast_menu>');
writeln(F,'<food>');
writeln(F,'<name>Belgian Waffles</name>');
writeln(F,'<price>$5.95</price>');
...
closefile(F);
最后解决问题的方法是:
1.先定义
resourcestring
XMLTag = 'xml';
XMLPrologAttrs = 'version="1.0" encoding="GBK"';
2.在“XmlDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument;”之后添加:
XmlDoc.AppendChild(XmlDoc.CreateProcessingInstruction(XMLTag, XMLPrologAttrs));
3.我在我的程序中又做了一点的修改,两者都调试通过了。
把“XmlDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument;”
改成了:“XmlDoc := CoDOMDocument.Create;”
最后希望我这份帖子能帮助更多的人!