zoukankan      html  css  js  c++  java
  • 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文件了。 

  • 相关阅读:
    Android开发环境搭建&第一个Android工程建立
    Pytest学习笔记8参数化
    Pytest学习笔记3fixture
    Pytest学习笔记2setup和teardown
    Pytest学习笔记1快速入门
    Pytest学习笔记4assert断言
    Pytest学习笔记9失败重跑
    Pipenv虚拟环境
    Pytest学习笔记7skip和skipif的使用
    Pytest学习笔记6自定义标记mark
  • 原文地址:https://www.cnblogs.com/relax/p/1347930.html
Copyright © 2011-2022 走看看