在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近其他项目组遇到一个数据导出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文件了。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论