2012-03-31 4 views
0

Kann jemand in Laien erklären, was das eigentlich macht?Was ist XMLNodeType - C#?

XmlTextReader textReader = new XmlTextReader(workingDir + @"\ModulesList.xml"); 

      textReader.Read(); 

       if (textReader.Name == "Name") 
       { 
        textReader.Read(); 
        XmlNodeType nType = textReader.NodeType; 
       } 
       if (nType == XmlNodeType.Text) 
       { 
        listBox1.Items.Add(textReader.Value.ToString()); 
       } 

Ich verstehe nicht den Zweck von XmlNodeType und NodeType auf dem Textreader. Bitte könnte jemand es auf die einfachste Art und Weise aufräumen: P

Antwort

3

Ein XmlReader ist wie ein Vorwärts-Cursor durch ein XML-Dokument. Abgesehen von der Tatsache, dass Ihr Code nicht kompiliert wird (Sie deklarieren nType in einem Block und dann in einem anderen), gibt XmlReader.NodeType den aktuellen Typ von Knoten zurück, den der XML-Leser betrachtet - ein Element, ein Textknoten, ein Attribut usw. XmlNodeType ist die Aufzählung möglicher Werte für XmlReader.NodeType.

Jedes Mal, wenn Sie Read nennen, wird der Leser auf den nächsten Knoten verschieben - und was möchten Sie tun mit diesem Knoten oft von seinem Typ ab.

Persönlich würde ich vermeiden XmlReader, es sei denn Sie versuchen, ein riesiges Dokument zu lesen, das nicht in den Speicher passt. Es ist eine viel schwerere API, um sie richtig zu verwenden als APIs, die ein ganzes Dokument in eine Baumstruktur laden und Sie in dieser Baumstruktur navigieren lassen. LINQ to XML ist eine besonders nette API wenn Sie in einer Situation sind, in der Sie es verwenden können.

+0

Dank lesen, die in Verständnis geholfen – a7omiton

3

Ich denke, MSDN kann es am besten zusammenfassen.

Die kurze ist XmlNodeType ist eine Enumeration, die Art von XML-Knoten zu definieren, die Sie gerade in der XML über den XmlReader

+1

ich auf MSDN sah aber suchten eine verdummte Version die Erklärung: P – a7omiton