xml mit c# auslesen. Programm stürzt ab

Gast #4679602
Lesenswert?

Hallo,
ich möchte mit C# eine xml auslesen. Diese ist wie folgt aufgebaut:

<?xml version="1.0" encoding="utf-8" ?>
<signlist version="1" 
url12="http://imgcache.qq.com/club/item/indivsign/itemlist/$PAGEID$/12_$ITEMID$.png"; 
url24="http://imgcache.qq.com/club/item/indivsign/itemlist/$PAGEID$/24_$ITEMID$.png">;
 <list>

  <sign id="157" v="1" l="0" n="v157" d="坊黄" />

  <sign id="155" v="1" l="0" n="v155" d="丽丽" />

  <sign id="142" v="1" l="0" n="v142" d="哪姐" />

  <sign id="156" v="1" l="0" n="v156" d="早丽" />

  <sign id="103" v="1" l="0" n="v103" d="宇莹" />
...
...

 </list>
</signlist>



Ich möchte gerne alle namen in einer Liste schreiben. Dazu möchte ich 
mir diese zunächst erst einmal so auf der Console ausgeben.
1
            XmlDocument doc = new XmlDocument();
2
            doc.Load(pfad);
3
            
4
            XmlElement root = doc.DocumentElement;
5
            XmlNode node = doc.SelectSingleNode("/signalist/list");
6
            foreach (XmlNode daten in node.ChildNodes)
7
            {
8
                Console.WriteLine(daten.Attributes["d"].InnerText);
9
            }
10

11

12
            Console.WriteLine();
13
            Console.WriteLine("code finished");
14
            Console.ReadKey();

doch leider stürzt das Programm immer ab. Weiss einer, was daran falsch 
ist?
Gast #4679624
Lesenswert?

Das könnte an der UTF8 Codierung liegen.
Bei mir siehts so aus:

byte[] fileBytes;
string XMLfile;


fileBytes=File.ReadAllBytes(pfad);
string XMLfile = System.Text.Encoding.UTF8.GetString(fileBytes);
XmlDocument doc = new XmlDocument();
doc.Load(new StringReader(XMLfile));

m.f.G.
Dieter Gräf
#4679713
Lesenswert?

Bei dir stimmt entweder dein Xml - File nicht oder der XPath - Ausdruck 
in SelectSingleNode ist nicht korrekt:

Xml-File:

<signlist version="1" ...


XPath - Ausdruck:
SelectSingleNode("/signalist/list")

Da ist ein "a" zuviel drin.

Dadurch ist node == null was zur NullReferenceException führt.

Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren