XML文件要求用DBK字符类型,但是用delphi的XMLdocument生成XML文件后,打开就是乱码,然后把XML最上方的那条调用“数据格式.dtd”文件的语句和确定DBK字符类型的语句删除之后就能正确显示。请问有没有解决的办法,是不是在delphi中要用什么函数把中文字符串给转换一下?

解决方案 »

  1.   

    AssignFile(XMLFile,XMLFileName);
      Rewrite(XMLFile);
      //Writeln(XMLFile,'<?xml version="1.0" encoding="GBK"?>');
      //Writeln(XMLFile,'<!DOCTYPE data SYSTEM "数据格式.dtd">');
      Writeln(XMLFile,XMLDoc.FormatXMLData(DMData.XMLDocument1.XML.Text));
      CloseFile(XMLFile);
      

  2.   

    XMLDOC:=XMLDocument.Create(nil)
          
          //自动换行设定
          XMLDoc.Options:=[doNodeAutoIndent];
          //设定XML文件属性
          XMLDoc.Version:='1.0';
          XMLDoc.Encoding:='GBK';
          //设定根节点、属性及名命空间
          XMLDoc.CreateElement('namespace','namespace');一般都要经过以上的属性设定
      

  3.   

    谢谢terence4444(T4)的解答,还有个问题,就是XML文件最开头会出现下面的三行:
    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE data SYSTEM "数据格式.dtd">
    <?xml version="1.0"?>有没有办法使得它只有下面两行:
    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE data SYSTEM "数据格式.dtd">