XML i XmlTextReader

0

Mam plik XML-owy

<tekst> <tekst1>Dziesięć</tekst1> </tekst>

Próbuję odczytać jego zawartość w C# następująco:

XmlTextReader xtr = new XmlTextReader("c:\prywatne\Bukmach\a.xml");

        while (xtr.Read())
        {
            Console.WriteLine(xtr.NodeType.ToString()+":"+xtr.Name+":"+xtr.Value);
           // xtr.MoveToElement();
        }

        xtr.Close();

Niestety ponieważ w znaczniku <tekst1>Dziesięć</tekst1> jest polski znak wyskakuje mi błąd :(( Jak zrobić aby było dobrze?? Gdy nie ma w znaczniku polskich liter wszystko idzie szybciutko.

Proszę o pomoc.

0

Spróbuj coś pokombinować z parametrami w konstruktorze. Wydaje mi sie ze wystarczy tam zmienić kodowanie...

0

Czy w pliku XML jest owe dziesięć zapisane w UTF-8? Jeżeli plik XML nie ma prologu z określeniem kodowania to za domyślne uznawany jest UTF-8.

// @adf88 pod spodem: Dokument XML nie musi zawierać prologu - jeśli go nie ma, to jest traktowany jako XML 1.0 z kodowaniem UTF-8.

0

W pierwszej linijce xml'a mówisz jakiego kodowania i wersji używa. Każdy plik xml'a powinien zawierać taką linijkę na początku, aż dziw, że się XmlReader nie zbuntował. Jeśli tworzysz skrypt w notatniku, to kodowanie to "Windows-1250", a plik powinien wyglądać następująco:

<?xml version="1.0" encoding="Windows-1250"?>
<tekst>
<tekst1>Dziesięć</tekst1>
</tekst>

Poza tym XmlReader służy do strumieniowego czytania xml'a czyli znak po znaku i korzystania tylko z bieżącego elementu.
Jeśli chciałbyś najpierw wszystko wczytać i mieć dostęp do dowolnego elementu w postaci drzewa to użyj XmlDocument.

1 użytkowników online, w tym zalogowanych: 0, gości: 1