我有一个XML文件,最初使用空格缩进格式(每个嵌套项目为2个空格)。IXMLDocument.SaveToFile()使用制表符而不是空格
当我使用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);
我怎么能用空格缩进而不是制表符保存?
你可能想看看这篇文章由扎克Gajic,[德尔福格式的XML节点缩进(http://delphi.about.com/od/delphitips2009 /qt/delphi-format-xml-node-indent.htm)。提供的解决方案使用'xmlDoc.FormatXMLData'格式化文件。 – 2012-04-18 07:55:54
@LURD尝试 - 没有结果:( – Andrew 2012-04-18 08:00:15
我看到现在的问题在哪里,'FormatXMLData'没有机会知道你使用了什么'NodeIndentStr',因为你将一个字符串传递给该函数,因此它使用默认的TAB char。 – TLama 2012-04-18 08:17:08