Reading an XmlDocument
An XmlDocument
can easily be loaded from disk using the Load( )
method. It has overloads for a Stream
, filename,
TextReader
, or XmlReader
, and
the LoadXml( )
method will load an XML string from
memory. This provides great flexibility; you can load an
XmlDocument
from a file, a web site, standard
input, a memory buffer, or any subclass of Stream
or TextReader
, as well as any subclass of
XmlReader
.
For example, suppose the inventory file were stored on a web server,
at http://www.angushardware.com/inventory.xml
.
The following code would let you read it:
XmlDocument document = new XmlDocument( ); document.Load("http://www.angushardware.com/inventory.xml");
After
reading the entire document into memory, you now have non-sequential
access to the entire XML tree. For example, you could easily navigate
down to the number of each item in stock using the
XmlNode
type’s
SelectNodes( )
method. SelectNodes(
)
returns an XmlNodeList
based on an
XPath expression; in this case, you’re selecting all
nodes that match the expression //items/item
, and
writing them to the console:
XmlDocument document = new XmlDocument( ); document.Load("http://www.angushardware.com/inventory.xml"); XmlNodeList items = document.SelectNodes("//items/item"); foreach (XmlElement item in items) { Console.WriteLine("{0} units of product code {1} in stock", item.GetAttribute("quantity"), item.GetAttribute("productCode")); }
Tip
XPath is covered in Chapter 6.
Although you don’t necessarily know in ...
Get .NET & XML now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.