gpt4 book ai didi

xml - 如何使用Delphi/ADOM(OpenXML)设置xml DOCTYPE?

转载 作者:行者123 更新时间:2023-12-03 18:31:17 28 4
gpt4 key购买 nike

使用Adom 4.3,使用

DI := TDomImplementation.Create;
Doc := TDomDocumentNS.Create( DI )


我该如何设定

<!DOCTYPE ...


生成的XML文档中的行?
/不能在保存文件时将此行插入到字符串列表中/

文档的Doctypedecl属性是只读的,创建文档后实际上为NIL,那么如何实现呢?谢谢。

最佳答案

您可以让DOM实现创建IDOMDocumentType的实例,您可以在创建文档时使用它:

program test;

{$APPTYPE CONSOLE}

{$R *.res}

uses
System.SysUtils,
Xml.adomxmldom,
Xml.XmlDom,
Xml.XmlDoc;

procedure Main;
var
DomImpl: IDOMImplementation;
Doc: TXMLDocument;
begin
DomImpl := GetDOM(sAdom4XmlVendor);
Doc := TXMLDocument.Create(nil);
try
Doc.DOMVendor := GetDOMVendor(sAdom4XmlVendor);
Doc.DOMDocument := DomImpl.createDocument('http://www.w3.org/2000/svg', 'svg:svg',
DomImpl.createDocumentType('svg:svg', '-//W3C//DTD SVG 1.1//EN',
'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'));
Doc.SaveToFile(ChangeFileExt(ParamStr(0), '.xml'));
finally
Doc.Free;
end;
end;

begin
try
Main;
except
on E: Exception do
begin
ExitCode := 1;
Writeln(Format('[%s] %s', [E.ClassName, E.Message]));
end;
end;
end.


上面的代码产生以下输出:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg:svg/>

关于xml - 如何使用Delphi/ADOM(OpenXML)设置xml DOCTYPE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30453830/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com