某个控件内的方法,生成的一个XML文件,文件头只生成
<?xml version="1.0"?>
.......
没有指定 encoding="gb2312"
而内容中的 FontName="宋体" 导致该XML文件不能用TXMLDocument读取
控件生成XML的方法不能改的,有什么好方法,可以把encoding="gb2312"加上去吗
望高手指点

解决方案 »

  1.   

    那就换一种方式了```用拼的吧~``<?xml version="1.0"?>
    .......
    没有指定 encoding="gb2312"
    这部分用写上去的。下面的部分生成的最终在合起来写到文件中去```当然我想也就不是用原来那种写法了。而是把生成好后和头加起一起放到一个可变的字符串中在写入到文件中去的比如net中的
    StringBuilder
      

  2.   

    MSXML DOM的方法:
    var xml:IXMLDOMDocument;
    begin
    CoInitialize(nil);
    try
    xml:=CreateOleObject('MSXML2.DOMDocument') as IXMLDOMDocument;
    xml.load('文件名');
    //创建处理器指令,并插到根节点前面:
    xml.insertBefore(
    xml.createProcessingInstruction('xml','version="1.0" encoding="gb2312"'),
    xml.documentElement);
    xml.save('文件名');
    finally
    CoUninitialize();
    end;
    TXMLDocument的方法:
    XMLDocument1.LoadFromFile('文件名');
    XMLDocument1.DOMDocument.insertBefore( XMLDocument1.DOMDocument.createProcessingInstruction('xml','version="1.0" encoding="gb2312"'),self.XMLDocument1.DocumentElement.DOMNode);
    XMLDocument1.SaveToFile('文件名');