我正在使用字符串列表制作一个简单的 xml,在其中通过 Add 插入节点以制作 UTF8 编码的 xml
例如。
myXML.Add('<myNode>'+UTF8Encode('υτφ8στρινγ')+'</myNode>');
但是我想切换到 IXMLDocument 表单更干净的代码和多功能性
我在 Delphi 中制作一个简单的 xml
procedure myxml;
var
xmlDoc : IXMLDocument;
xNode : IXMLNode;
begin
xmlDoc := TXMLDocument.Create(nil);
try
xmlDoc.Active := TRUE;
xmlDoc.Version := '1.0';
xmlDoc.Encoding := 'utf-8';
xNode := xmlDoc.AddChild('myNode');
xNode.Text := UTF8Encode('υτφ8στρινγ'); //greek chars
xmlDoc.XML.SaveToFile('test.xml');
finally
FreeAndNil(xmlDoc);
end;
end;
问题是输出 XML 以 UTF-8 编码两次。我相信这个问题与默认情况下以 UTF-8 编码(通过 MSXML.save())的 MSXML 有关。
所以我需要以某种方式让 MSXML 不对 XML 进行编码,但有标题
<?xml version="1.0" encoding="utf-8"?>