program TestIndentXML;
{$APPTYPE CONSOLE}
uses
SysUtils,
OmniXML,
OmniXMLUtils;
function IndentXML(const xml: string): string;
var
xmlDoc: IXMLDocument;
begin
Result := '';
xmlDoc := CreateXMLDoc;
if not XMLLoadFromAnsiString(xmlDoc, xml) then
Exit;
Result := XMLSaveToAnsiString(xmlDoc, ofIndent);
end;
begin
Writeln(IndentXML('<XML><TAG1>A</TAG1><TAG2><Tag3></Tag3></TAG2></XML>'));
Readln;
end.
5条答案
按热度按时间zd287kbt1#
RTL在XMLDoc.pas中有FormatXMLData,它接受并返回字符串。
edqdpe6u2#
使用OmniXML:
字符串
上面的代码片段被发布到公共领域。
falq053o3#
正在使用XSLT...
字符串
xu3bshqb4#
我使用了Michael Elsdörfer的Tidy和libtidy。它为您提供了大量的选项,您可以在应用程序外部配置它们。也适用于HTML。
这是我使用的一些非常粗糙的代码。随你便。
字符串
ttp71kqs5#
Delphi 中构建的XMLDocumentDOM对象有一个漂亮的格式化选项。您只需将XML加载到其中并将其保存出来,如果您设置了该选项,那么它将使一切变得美好。
我会查一下并更新这个答案。