我有一个XML文件,原本使用空格缩进格式化(每个嵌套项使用2个空格)。
当我使用IXMLDocument加载和保存此文件时,空格缩进会变成制表符(代码#9)。
以下是代码:
var
FileName: String;
Document: IXMLDocument;
...
Document := XMLDoc.LoadXMLDocument(FileName);
Document.SaveToFile(FileName);
我尝试使用NodeIndentStr
属性 - 但没有结果:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.NodeIndentStr := ' ';
Document.SaveToFile(FileName);
我也使用了FormatXMLData
,但没有结果:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.XML.Text := XMLDoc.FormatXMLData(Document.XML.Text);
Document.Active := True;
Document.SaveToFile(FileName);
如何使用空格缩进而不是制表符?
xmlDoc.FormatXMLData
以良好的方式格式化文件。 - LU RDFormatXMLData
函数无法知道你正在使用哪个NodeIndentStr
,因为你正在向该函数传递一个字符串,因此它使用默认的TAB字符。 - TLamapreserveWhiteSpace
(IXMLDOMDocument
) 吗? - kobikpoPreserveWhiteSpace
。使用方式如下:Document.ParseOptions := Document.ParseOptions + [poValidateOnParse] + [poPreserveWhiteSpace];
。这样做可以完成任务吗?抱歉,Kobik,我刚看到你的评论。 - LU RD