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 ...