O'Reilly logo

C# in a Nutshell by Peter Drayton, Ted Neward, Ben Albahari

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

XmlReader

Synopsis

This class is a simple reader for XML documents. XmlReader provides a non-cached, forward-only navigation through an XML data stream. It does not provide validation, nor does it expand general entities. Two derived classes provide these features: XmlTextReader and XmlValidatingReader.

The XmlReader class parses XML in a streaming-based approach (exemplified by the SAX specification). This means the XML parser presents “interesting pieces” (elements, attributes, namespace declarations, and so forth) in a linear order. Within XmlReader, this ordering of nodes is done using successive calls to the Read() method. An XmlReader is not positioned on a node at first — an initial call to Read() is required to move to the root node of a document. Subsequent calls to Read() move the reader sequentially through the nodes. The NodeType property tells you which type of node the reader is currently positioned on, returning values from the XmlNodeType enumeration. A special node-type value for XmlReader is EndElement. As Read() moves through the stream, it can be positioned on an element’s end tag after it has stepped through the element’s children. This is not a real node, in the DOM sense, but is required for XmlReader to parse XML data properly. The Skip() method steps through data node by node. A call to Skip() moves the reader to the next real node, disregarding the current node’s children.

XML documents can also be parsed in a tree-based approach, using the XmlDocument ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required