원래 공간 들여 쓰기 (각 들여 쓰기 된 항목에 대해 2 공백)를 사용하여 서식이 지정된 XML 파일이 있습니다.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);
어떻게 할 수 탭 문자 대신 공백 들여 쓰기로 저장 하시겠습니까?
당신은 Zarko Gajic에 의해이 문서를 읽어보십시오, [델파이 포맷-XML 노드 들여 쓰기 (http://delphi.about.com/od/delphitips2009 /qt/delphi-format-xml-node-indent.htm). 제공된 솔루션은'xmlDoc.FormatXMLData'를 사용하여 파일을 좋은 방식으로 포맷합니다. –
@LURD 시도했습니다 - 아니 결과 : ( – Andrew
어디 지금은 문제가 거짓말,'FormatXMLData'는 당신이 그 함수에 문자열을 전달하기 때문에'NodeIndentStr'이 사용하고있는 것을 알 수 없으므로 기본 TAB을 사용합니다 char. – TLama