我有一个关于输入的XML文档,格式很糟糕(如果有人关心的话,它是Delphi项目文件) - 不一致的缩进,空行,节点字符串集中在一起:
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="HostApplication">C:\Some\Path\Filename.exe</Parameters> <!--etc--> <Excluded_Packages>
</Excluded_Packages>
Run Code Online (Sandbox Code Playgroud)
我想将它重新格式化为好的东西.使用Win32/COM以编程方式执行此操作的最简单方法是什么?如果是MSXML,我该怎么办呢?
我希望能够指定缩进单位(制表符/几个空格).
我尝试使用Delphi的MSXML包装器TXmlDocument,它确实删除了带有制表符的空行和缩进节点,但它不会像这样拆分行:
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="HostApplication">C:\Some\Path\Filename.exe</Parameters> <!--etc--> <Excluded_Packages>
Run Code Online (Sandbox Code Playgroud)
RRU*_*RUZ 19
我FormatXMLData在delphi项目文件中测试了该函数并且正常工作,正确地缩进所有行.
检查此代码.
uses
XMLIntf,
XMLDoc;
Procedure FormatXMLFile(const XmlFile:string);
var
oXml : IXMLDocument;
begin
oXml := TXMLDocument.Create(nil);
oXml.LoadFromFile(XmlFile);
oXml.XML.Text:=xmlDoc.FormatXMLData(oXml.XML.Text);
oXml.Active := true;
oXml.SaveToFile(XmlFile);
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8619 次 |
| 最近记录: |