System.Xml.XmlReader.ReadInnerXml Method

When overridden in a derived class, reads all the content, including markup, as a string.

Syntax

public virtual string ReadInnerXml ()

Returns

All the XML content, including markup, in the current node. If the current node has no children, an empty string is returned.

If the current node is neither an element nor attribute, an empty string is returned.

Exceptions

TypeReason
System.Xml.XmlExceptionThe XML was not well-formed, or an error occurred while parsing the XML.

Remarks

This method returns all the content of the current node including the markup. The current node (start tag) and corresponding end node (end tag) are not returned. For example, if you had the following:

Example

 <node>
  this <child id="123"/>
 </node>

ReadInnerXml returns this <child id="123"/>

This method handles element and attribute nodes in the following manner:

Element

On the item1 start tag.

<item1>text1</item1><item2>text2</item2>

text1

On the item2 start tag.

Attribute

On the attr1 attribute node.

<item attr1="val1" attr2="val2">text</item>

val1

Remains on the attr1 attribute node.

If the reader is positioned on a leaf node, calling ReadInnerXml is equivalent to calling XmlReader.Read. The method returns String.Empty (except for attribute nodes, in which case the value of the attribute is returned).

This method checks for well-formed XML. If ReadInnerXml is called from an System.Xml.XmlValidatingReader, this method also validates the content returned.

As implemented in the System.Xml.XmlNodeReader, System.Xml.XmlTextReader and XmlValidatingReader classes the ReadOuterXml method is namespace aware.

For the asynchronous version of this method, see XmlReader.ReadInnerXmlAsync.

Requirements

Namespace: System.Xml
Assembly: System.Xml (in System.Xml.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0