xmlwriter записывает элементы в одну строку - PullRequest
6 голосов
/ 15 декабря 2011

Я пытался сохранить некоторые элементы из своего приложения в XML-файле, но когда я начал разрабатывать его, используя этот код:

public static void WriteInFile(string savefilepath)
        {
            XmlWriter writer = XmlWriter.Create(savefilepath);
            WriteXMLFile(writer);

        }
private static void WriteXMLFile(XmlWriter writer) //Write and Create XML profile for specific type 
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("cmap");
            writer.WriteAttributeString("xmlns", "dcterms",null, "http://purl.org/dc/terms/");
            writer.WriteElementString("xmlns", "http://cmap.ihmc.us/xml/cmap/");
           // writer.WriteAttributeString("xmlns","dc",null, "http://purl.org/dc/elements/1.1/");
            //writer.WriteAttributeString("xmlns", "vcard", null, "http://www.w3.org/2001/vcard-rdf/3.0#");
            writer.WriteEndElement();
            writer.WriteEndDocument();
            writer.Close();
        }

Я обнаружил, что вывод в блокноте в одной строке, как это:

<?xml version="1.0" encoding="utf-8"?><cmap
xmlns:dcterms="http://purl.org/dc/terms/"><xmlns>http://cmap.ihmc.us/xml/cmap/</xmlns></cmap>

Я хочу, чтобы оно выглядело как многострочный:

<?xml version="1.0" encoding="utf-8"?> <cmap
xmlns:dcterms="http://purl.org/dc/terms/"><xmlns>http://cmap.ihmc.us/xml/cmap/</xmlns>
</cmap>

Ответы [ 3 ]

12 голосов
/ 15 декабря 2011

Вы создали экземпляр XmlWriterSettings.

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create(savefilepath, settings);
3 голосов
/ 15 декабря 2011
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (var writer = XmlWriter.Create(savefilepath, settings))
{
     WriteXMLFile(writer);
}
2 голосов
/ 15 декабря 2011

Вы должны использовать XmlWriterSettings - установите соответствующие параметры форматирования и передайте его при создании XmlWriter.

Подробнее об этом здесь: http://msdn.microsoft.com/en-us/library/kbef2xz3.aspx

...