Mam plik XML, który jest oryginalnie sformatowany za pomocą wcięć spacji (2 spacje dla każdego elementu zagnieżdżonego).IXMLDocument.SaveToFile() używa znaku tab dla wcięcia zamiast spacji
Po załadowaniu i zapisaniu tego pliku przy użyciu dokumentu IXML, wcięcia spacji zmieniają się na znaki tabulacji (kod # 9).
Oto kod:
var
FileName: String;
Document: IXMLDocument;
...
Document := XMLDoc.LoadXMLDocument(FileName);
Document.SaveToFile(FileName);
Próbowałem użyć NodeIndentStr
nieruchomości - bez rezultatu:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.NodeIndentStr := ' ';
Document.SaveToFile(FileName);
Używane FormatXMLData
też - bez rezultatu:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.XML.Text := XMLDoc.FormatXMLData(Document.XML.Text);
Document.Active := True;
Document.SaveToFile(FileName);
Jak mogę zapisywać z wcięciami spacji zamiast tabulatorów?
Czasami warto przeczytać ten artykuł Zarko Gajic [Delphi-Format-xml-node-indent] (http://delphi.about.com/od/delphitips2009 /qt/delphi-format-xml-node-indent.htm). Dostarczone rozwiązanie używa 'xmlDoc.FormatXMLData', aby w wygodny sposób sformatować plik. –
@LURD wypróbowany - brak wyniku :( – Andrew
Widzę, gdzie leży teraz problem, "FormatXMLData" nie ma szansy dowiedzieć się, jakiego 'NodeIndentStr' używasz, ponieważ przekazujesz ciąg do tej funkcji, dlatego używa on domyślnej TAB char. – TLama