Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
XmlReader Class
XmlReader Methods
 ReadInnerXml Method

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
XmlReader..::.ReadInnerXml Method

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

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)
Visual Basic (Declaration)
Public Overridable Function ReadInnerXml As String
Visual Basic (Usage)
Dim instance As XmlReader
Dim returnValue As String

returnValue = instance.ReadInnerXml()
C#
public virtual string ReadInnerXml()
Visual C++
public:
virtual String^ ReadInnerXml()
JScript
public function ReadInnerXml() : String

Return Value

Type: System..::.String
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.
ExceptionCondition
XmlException

The XML was not well-formed, or an error occurred while parsing the XML.

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:

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

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

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

Node type

Position before the call

XML fragment

Return value

Position after the call

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 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 XmlValidatingReader, this method also validates the content returned.

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

The following example compares the ReadInnerXml and ReadOuterXml methods.

Visual Basic
' Load the file and ignore all white space.
Dim settings As New XmlReaderSettings()
settings.IgnoreWhitespace = True
Using reader As XmlReader = XmlReader.Create("2books.xml")

  ' Moves the reader to the root element.
  reader.MoveToContent()

  ' Moves to book node.
  reader.Read()

  ' Note that ReadInnerXml only returns the markup of the node's children
  ' so the book's attributes are not returned.
  Console.WriteLine("Read the first book using ReadInnerXml...")
  Console.WriteLine(reader.ReadInnerXml())

  ' ReadOuterXml returns the markup for the current node and its children
  ' so the book's attributes are also returned.
  Console.WriteLine("Read the second book using ReadOuterXml...")
  Console.WriteLine(reader.ReadOuterXml())

End Using

C#
// Load the file and ignore all white space.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
using (XmlReader reader = XmlReader.Create("2books.xml")) {

  // Moves the reader to the root element.
  reader.MoveToContent();

  // Moves to book node.
  reader.Read(); 

  // Note that ReadInnerXml only returns the markup of the node's children
  // so the book's attributes are not returned.
  Console.WriteLine("Read the first book using ReadInnerXml...");
  Console.WriteLine(reader.ReadInnerXml());

  // ReadOuterXml returns the markup for the current node and its children
  // so the book's attributes are also returned.
  Console.WriteLine("Read the second book using ReadOuterXml...");
  Console.WriteLine(reader.ReadOuterXml());      

}

The example uses 2books.xml file as input.

<!--sample XML fragment-->
<bookstore>
  <book genre='novel' ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <book genre='novel' ISBN='1-861001-57-5'>
    <title>Pride And Prejudice</title>
    <price>24.95</price>
  </book>
</bookstore>

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

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

.NET Framework

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

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker