Tôi có tệp XML, được định dạng ban đầu bằng cách sử dụng dấu cách không gian (2 dấu cách cho mỗi mục lồng nhau).IXMLDocument.SaveToFile() sử dụng ký tự tab cho thụt đầu dòng thay vì dấu cách
Khi tôi tải và lưu tệp này bằng cách sử dụng IXMLDocument, khoảng trống không gian đang thay đổi thành các ký tự tab (mã số 9).
Đây là mã:
var
FileName: String;
Document: IXMLDocument;
...
Document := XMLDoc.LoadXMLDocument(FileName);
Document.SaveToFile(FileName);
Tôi cố gắng để sử dụng NodeIndentStr
tài sản - không có kết quả:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.NodeIndentStr := ' ';
Document.SaveToFile(FileName);
Dùng FormatXMLData
quá - không có kết quả:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.XML.Text := XMLDoc.FormatXMLData(Document.XML.Text);
Document.Active := True;
Document.SaveToFile(FileName);
Làm thế nào tôi có thể tiết kiệm với không gian thụt lề thay vì ký tự tab?
Bạn có thể muốn đọc bài viết này bằng cách Žarko Gajic, [delphi-format-xml-nút-indent] (http://delphi.about.com/od/delphitips2009 /qt/delphi-format-xml-node-indent.htm). Giải pháp được cung cấp sử dụng 'xmlDoc.FormatXMLData' để định dạng tệp theo cách tốt đẹp. –
@LURD đã thử - không có kết quả: ( – Andrew
Tôi thấy vấn đề nằm ở đâu bây giờ, 'FormatXMLData' không có cơ hội để biết' NodeIndentStr' nào bạn đang sử dụng vì bạn đang chuyển chuỗi tới hàm đó, do đó nó sử dụng TAB mặc định char – TLama