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文件了。 

  • 相关阅读:
    gradle 转 maven
    java Multimap
    java 写法推荐
    Python虚拟环境virtualenv
    C# 转换图形为PCX 格式
    微软宣布.NET开发环境将开源 支持Mac OS X和Linux
    写给在Java和.net中徘徊的新手
    HTML5 vs FLASH vs SILVERLIGHT
    我的NHibernate曲折之行
    NHibernate 3 Beginner's Guide
  • 原文地址:https://www.cnblogs.com/relax/p/1347930.html
Copyright © 2011-2022 走看看