Necesito guardar un XmlDocument
en el archivo con la sangría adecuada (Formatting.Indented)
pero algunos nodos con sus hijos tienen que estar en una línea (Formatting.None)
.¿Cómo guardar XmlDocument con varias configuraciones de sangría?
¿Cómo lograr eso ya que XmlTextWriter
acepta la configuración de un documento completo?
Edición después de resposne @Ahmad Mageed:
no sabía que la configuración de XmlTextWriter puede ser modificado durante la escritura. Esas son buenas noticias.
En este momento estoy ahorrando xmlDocument (que ya está llena de nudos, para ser específico es .xaml página) de esta manera:
XmlTextWriter writer = new XmlTextWriter(filePath, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
xmlDocument.WriteTo(writer);
writer.Flush();
writer.Close();
Permite hendidura en todos los nodos, por supuesto. Necesito deshabilitar la sangría al tratar con todos los nodos <Run>
.
En su ejemplo, escribe en XmlTextWriter "manualmente". ¿Hay una manera fácil de rastrear a través de todos los nodos xmlDocument y escribirlos en XmlTextWriter para que pueda detectar los nodos <Run>
? ¿O tengo que escribir algún tipo de método recursivo que vaya a cada hijo del nodo actual?
@shg: Vi su respuesta. ¿Es LINQ to XML una opción? O estrictamente .NET 2.0? Por cierto, debe editar su pregunta y publicar ese código aquí en lugar de publicarlo como una respuesta para que todo esté en un lugar para que los demás lo vean, ya que es información adicional para su pregunta. Puede editar esto y luego eliminar la otra publicación. –
@Ahmad Mageed: nunca antes había usado LINQ to XML, pero es una opción. Gracias por la pista. Lo echaré un vistazo más de cerca. BTW He hecho la edición que sugirió. Soy nuevo en publicar preguntas en stackoverflow, así que lo siento por el desastre. – shg