我正在使用Delphi 7和OmniXML并尝试创建文档,我需要将DocumentElement设为:
<?xml version =" 1.0"编码=" UTF-8">
但我无法理解如何添加最后?
个符号。
我的代码:
var
xml: IXMLDocument;
begin
xml := ConstructXMLDocument('?xml');
SetNodeAttr(xml.DocumentElement, 'version', '1.0');
SetNodeAttr(xml.DocumentElement, 'encoding', 'UTF-8');
XMLSaveToFile(xml, 'C:\Test1.xml', ofIndent);
end;
答案 0 :(得分:6)
<?xml version="1.0" encoding="UTF-8"?>
这不是文档元素。它甚至不是一个元素,而是一个 Processing Instruction ,它恰好是XML声明,有时也称为XML prolog。
要指定XML声明的属性,请改为使用:
xmlDoc.CreateProcessingInstruction('xml', 'version="1.0" encoding="UTF-8"');
例如:
{$APPTYPE CONSOLE}
uses
OmniXML;
var
XMLDoc: IXMLDocument;
ProcessingInstruction: IXMLProcessingInstruction;
DocumentElement: IXMLElement;
begin
XMLDoc := CreateXMLDoc;
ProcessingInstruction := XMLDoc.CreateProcessingInstruction('xml',
'version="1.0" encoding="UTF-8"');
DocumentElement := XMLDoc.CreateElement('foo');
XMLDoc.DocumentElement := DocumentElement;
XMLDoc.InsertBefore(ProcessingInstruction, DocumentElement);
XMLDoc.Save('foo.xml', ofIndent);
end.