• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DELPHI操作XML添加DOCTYPE部分信息

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    最近其他项目组遇到一个数据导出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文件了。 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
数学建模——Matlab画散点图发布时间:2022-07-18
下一篇:
matlab特殊矩阵生成学习发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap