Tob*_*len 15 xml delphi text-formatting pretty-print
任何人都有一个现成的函数,它将采用XML字符串并返回正确缩进的字符串?
例如
<XML><TAG1>A</TAG1><TAG2><Tag3></Tag3></TAG2></XML>
并在插入换行符和制表符或空格后返回格式良好的String?
gab*_*abr 10
使用OmniXML:
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.
上面的代码片段被释放到公共域.