Kolejne kawałki kodu korzystające z xml’a

Rok temu popełniony podobny post. Cykl można by nazwać skrótowo „zwykły, prosty kod którego się wiele powtarza, ale fajnie mieć miejsce do którego można wrócić, bo pamiętam, że kiedyś coś takiego pisałem”.

Formatowanie

Gdy zapisujemy do pliku sprawa jest prosta. Od razu robi wcięcia.

    xmlDocument.Save("example.xml");

Gdy jest potrzeba zapisania do stringa, to korzystamy z Formatting.Indented jak w poniższym kodzie:

    string output;

    using (var sw = new StringWriter()) // nie dam głowy, że te 2 usingi sa konieczne - nie chce mi się sprawdzać
    {
        using (var textWriter = new XmlTextWriter(sw))
        {
            textWriter.Formatting = Formatting.Indented;
            xmlDocument.WriteTo(textWriter);

            output = sw.ToString();
        }
    }

    Console.Write(output);

Wczytanie pliku Xml

Poniższy kod nie zadziała. Plik ‚example.xml’ jest poprawnie sformatowanym xml’em. Dostaniemy komunikat „Data at the root level is invalid. Line 1, position 1.”

    XmlDocument xmlDocument = newXmlDocument();
    xmlDocument.LoadXml(@"example.xml") // error

Prawidłowo należy skorzystać z Load(string):

    XmlDocument xmlDocument = newXmlDocument();
    xmlDocument.Load(@"example.xml")

Do czego służy funkcja LoadXml(string) można poczytać na MSDN.

Reklamy
Ten wpis został opublikowany w kategorii Uncategorized i oznaczony tagami , . Dodaj zakładkę do bezpośredniego odnośnika.