• DELPHI操作XML添加DOCTYPE部分信息


        最近其他项目组遇到一个数据导出XML的小问题,因为我以前对操作XML比较熟悉,自然找到我帮助结局。其实DELPHI操作XML还是很方便的,问题出在他们的XML头部必须有 !DOCTYPE 部分 例如下面的XML代码:

    <?xml version="1.0" encoding="GB2312"?>
    <!DOCTYPE  math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">
    <root>
      
    <test>
        
    <add key="-1" filename="oFile"/>
      
    </test>
    </root>

        对于在C#中很好操作,DELPHI这部分代码相对较少,在GOOGLE上搜索也没结果,于是我看了一下DELPHI的 NativeXml.pas 源代码,发现其中有 xeDoctype 的定义,这正是我们要找的。哈。。

        定义XML DOCTYPE  的 DELPHI代码如下:

        uses  NativeXml 

    procedure TForm1.Button1Click(Sender: TObject);
    var
      xml: TNativeXML;
      n_bs: TXMLNode;
    begin
      xml :
    = TNativeXml.CreateName('root');
      xml.EncodingString :
    = 'GB2312';
      xml.XmlFormat :
    = xfReadable;

      
    //正常XML部分
      n_bs :
    = xml.Root.NodeNew('test');
      n_bs :
    = n_bs.NodeNew('add');
      n_bs.WriteAttributeString(
    'key''-1');
      n_bs.WriteAttributeString(
    'filename''oFile');

      
    //添加 <!DOCTYPE ?> 部分
      n_bs :
    = TXmlNode.CreateType(xml, xeDoctype);
      n_bs.ValueDirect :
    = 'math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd"';
      xml.RootNodeList.NodeInsert(
    1, n_bs);

      xml.SaveToFile('1.xml');

    end; 


    这样我们就输出上面的XML文件了。 

  • 相关阅读:
    需求分析-配置软件开发的出发点
    有关tab页的
    有关菜单的
    有关树形结构的
    需求分析-新闻发布的完整需求
    需求分析-网盘类的需求分析
    需求分析-有关有关富文本编辑器的需求
    Objective-C中的instancetype和id区别
    webservice远程调试开启
    Controller之间传递数据:Block传值
  • 原文地址:https://www.cnblogs.com/relax/p/1347930.html
Copyright © 2020-2023  润新知