Tengo un archivo XML, que está formateado originalmente con sangrías de espacio (2 espacios para cada elemento anidado).IXMLDocument.SaveToFile() utiliza el carácter de tabulación para la sangría en lugar de espacios
Cuando cargo y guardo este archivo utilizando IXMLDocument, las sangrías de espacio están cambiando a los caracteres de tabulación (código n. ° 9).
Aquí está el código:
var
FileName: String;
Document: IXMLDocument;
...
Document := XMLDoc.LoadXMLDocument(FileName);
Document.SaveToFile(FileName);
He intentado utilizar NodeIndentStr
propiedad - no hay resultados:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.NodeIndentStr := ' ';
Document.SaveToFile(FileName);
usados FormatXMLData
también - no hay resultados:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.XML.Text := XMLDoc.FormatXMLData(Document.XML.Text);
Document.Active := True;
Document.SaveToFile(FileName);
¿Cómo puedo guardar con sangrías de espacio en lugar de caracteres de tabulación?
Es posible que desee leer este artículo de Zarko Gajic, [delphi-formato-xml-nodo-guión] (http://delphi.about.com/od/delphitips2009 /qt/delphi-format-xml-node-indent.htm). La solución provista utiliza 'xmlDoc.FormatXMLData' para formatear el archivo de una manera agradable. –
@LURD intentado - sin resultado :( – Andrew
Veo dónde está el problema ahora, el 'FormatXMLData' no tiene ninguna posibilidad de saber qué' NodeIndentStr' estás usando ya que estás pasando una cadena a esa función, por lo tanto usa la TAB predeterminada – TLama