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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access