XML C# Book

NodeType is of type XmlNodeType, which is an enum with these members:
Attribute
CDATA
Comment
Document
DocumentFragment
DocumentType
Element
EndElement
EndEntity
Entity
EntityReference
None
Notation
ProcessingInstruction
SignificantWhitespace
Text
Whitespace
XmlDeclaration
Consider the following XML file:



Jack
Smith


Two string properties on XmlReader provide access to a node's content: Name and Value. Depending on the node type, either Name or Value (or both) is populated:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Text;
using System.IO;
class Program
{
static void Main()
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;

using (XmlReader r = XmlReader.Create("customer.xml", settings))
while (r.Read())
{
Console.Write(r.NodeType.ToString().PadRight(17, '-')); Console.Write("> ".PadRight(r.Depth * 3));
switch (r.NodeType)
{
case XmlNodeType.Element:
case XmlNodeType.EndElement: Console.WriteLine(r.Name); break;
case XmlNodeType.Text:
case XmlNodeType.CDATA:
case XmlNodeType.Comment:
case XmlNodeType.XmlDeclaration: Console.WriteLine(r.Value); break;
case XmlNodeType.DocumentType:
Console.WriteLine(r.Name + " - " + r.Value); break;
default: break;
}
}
}
}
The output:
XmlDeclaration---> version="1.0" encoding="utf-8" standalone="yes"
Element----------> customer
Element----------> firstname
Text-------------> Jack
EndElement-------> firstname
Element----------> lastname
Text-------------> Smith
EndElement-------> lastname
EndElement-------> customer