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 ReadSubtree 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.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft