This documentation is archived and is not being maintained.

XPathDocument Constructor (XmlReader)

Initializes a new instance of the XPathDocument class from the XML data that is contained in the specified XmlReader object.

Namespace:  System.Xml.XPath
Assembly:  System.Xml (in System.Xml.dll)

public XPathDocument(
	XmlReader reader


Type: System.Xml.XmlReader
The XmlReader object that contains the XML data.


An error was encountered in the XML data. The XPathDocument remains empty.


The XmlReader object passed as a parameter is null.

An XmlReader object can be used to load a whole XML document or part of an XML document into an XPathDocument. To load part of an XML document into an XPathDocument, position the XmlReader object on the top XML node to load data from. When you create an XPathDocument by using the XPathDocument constructor, data is loaded from the current top node through all its siblings. Afterwards, the XmlReader is positioned on the outer scope of the top XML node. Alternatively, you can use the XmlReaderReadSubtree() method to load the XPathDocument into a particular element in the XML document.

The following are important notes to consider when you use the XPathDocument constructor.

  • An XmlReader object with the appropriate associated XmlResolver object settings can be used to resolve entities or other references in XML data.

  • If the XmlReader object is positioned on a leaf node that is not valid for the root level of a document—for example, a white space or attribute node—the XmlReader object continues to read until it is positioned on a node that can be used for the root. The XPathDocument begins loading at this point.

  • To preserve white space, use the XPathDocument constructor that accepts an XmlSpace object as a parameter.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.