Mega Code Archive

 
Categories / C# Book / 06 XML
 

0551 XmlNodeType

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: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <customer id="123" status="archived"> <firstname>Jack</firstname> <lastname>Smith</lastname> </customer> 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