您的位置:首页 > 编程语言 > Delphi

DELPHI操作XML添加DOCTYPE部分信息

2008-12-04 22:24 489 查看
    最近其他项目组遇到一个数据导出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文件了。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: