Este método devuelve todo el contenido del nodo actual, incluido el marcado. No se devuelven el nodo actual (etiqueta de apertura) ni el correspondiente nodo final (etiqueta de cierre). Por ejemplo, en el siguiente caso:
<node>
this <child id="123"/>
</node>
ReadInnerXml devuelve this <child id="123"/>
Este método controla los nodos de elemento y de atributo de la siguiente manera:
| Tipo de nodo | Posición antes de la llamada | Fragmento XML | Valor devuelto | Posición después de la llamada |
| Element | En la etiqueta de apertura item1. | <item1>text1</item1><item2>text2</item2> | text1 | En la etiqueta de apertura item2. |
| Attribute | En el nodo de atributo attr1. | <item attr1="val1" attr2="val2">text</item> | val1 | Permanece en el nodo de atributo attr1. |
Si el lector está situado en un nodo de hoja, llamar a ReadInnerXml equivale a llamar al método Read. El método devuelve String.Empty (excepto para los nodos de atributos, en cuyo caso se devuelve el valor del atributo).
Este método comprueba si el formato XML es correcto. Si se llama a ReadInnerXml desde XmlValidatingReader, este método valida también el contenido devuelto.
Implementado en las clases XmlNodeReader, XmlTextReader y XmlValidatingReader el método ReadOuterXml reconoce el espacio de nombres.