An XML file appears as an upside-down tree: it has a root
(in this case <Videos>), it can have branches (in this case <Video>), and
it can have leaves (an example in this case is <Title>). As we have seen so far, all of
these objects are created using the same technique: a tag with a name (such as
<Title>) and an
optional value. Based on their similarities, each of these objects is called a
node. To support nodes of an XML file, the .NET Framework
provides the XmlNode class, which is the ancestor to all types of nodes.
XmlNode is an abstract class without a constructor. Based on this, to get
a node, you must have an object that would produce one and you can only retrieve
a node from an (existing) object.