When overridden in a derived class, reads the content, including markup, representing this node and all its children.
Assembly: System.Xml (in System.Xml.dll)
Return ValueType: System.String
If the reader is positioned on an element or an attribute node, this method returns all the XML content, including markup, of the current node and all its children; otherwise, it returns an empty string.
The XML was not well-formed, or an error occurred while parsing the XML.
An XmlReader method was called before a previous asynchronous operation finished. In this case, InvalidOperationException is thrown with the message “An asynchronous operation is already in progress.”
This method is similar to ReadInnerXml except it also returns the start and end tags.
This method handles element and attribute nodes in the following manner:
Position before the call
Position After the Call
On the item1 start tag.
On the item2 start tag.
On the attr1 attribute node.
<item attr1="val1" attr2="val2">text</item>
Remains on the attr1 attribute node.
If the reader is positioned on a leaf node, calling ReadOuterXml is equivalent to calling Read. The method returns String.Empty (except for attribute nodes, in which case the attribute markup is returned).
This method checks for well-formed XML. If ReadOuterXml is called from an XmlValidatingReader, this method also validates the content returned
As implemented in the XmlNodeReader, XmlTextReader and XmlValidatingReader classes the ReadOuterXml method is namespace aware. Given the following XML text <A xmlns:S="urn:1"><S:B>hello</S:B></A>, if the reader were positioned on the S:B start tag, ReadOuterXml returns <S:B xmlns:S="urn:1">hello<S:B/>.
For the asynchronous version of this method, see ReadOuterXmlAsync.
The following example compares the ReadInnerXml and ReadOuterXml methods.
The example uses 2books.xml file as input.
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.