我有一个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);
如何使用空格缩进而不是制表符进行保存?
答案 0 :(得分:11)
IXMLDocument
中有一个选项,可以告诉解析器保留空格。
像这样使用:
Document.ParseOptions :=
Document.ParseOptions+[poValidateOnParse]+[poPreserveWhiteSpace];
免责声明:我没试过。
答案 1 :(得分:0)
我不确定有什么不同但 Document.ParseOptions + [poValidateOnParse,poPreserveWhiteSpace]; 对我来说无法访问。
类似的东西:
var
xmlDoc: IXMLDOMDocument2;
xmlDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDOMDocument2;
xmlDoc.validateOnParse := True;
xmlDoc.preserveWhiteSpace := True;