XmlReader.ReadInnerXml Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
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)
Syntax
'Declaration
Public Overridable Function ReadInnerXml As String
public virtual string ReadInnerXml()
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.
Exceptions
Exception | Condition |
---|---|
XmlException | The 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:
<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.
Examples
The following example uses the ReadInnerXml method.
Dim output As StringBuilder = New StringBuilder()
' XmlXapResolver is the default resolver.
Using reader As XmlReader = XmlReader.Create("book.xml")
' Moves the reader to the root element.
reader.MoveToContent()
reader.ReadToFollowing("book")
' Note that ReadInnerXml only returns the markup of the node's children
' so the book's attributes are not returned.
output.AppendLine("Read the first book using ReadInnerXml...")
output.AppendLine(reader.ReadInnerXml())
reader.ReadToFollowing("book")
' ReadOuterXml returns the markup for the current node and its children
' so the book's attributes are also returned.
output.AppendLine("Read the second book using ReadOuterXml...")
output.AppendLine(reader.ReadOuterXml())
End Using
OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
// XmlXapResolver is the default resolver.
using (XmlReader reader = XmlReader.Create("book.xml"))
{
// Moves the reader to the root element.
reader.MoveToContent();
reader.ReadToFollowing("book");
// Note that ReadInnerXml only returns the markup of the node's children
// so the book's attributes are not returned.
output.AppendLine("Read the first book using ReadInnerXml...");
output.AppendLine(reader.ReadInnerXml());
reader.ReadToFollowing("book");
// ReadOuterXml returns the markup for the current node and its children
// so the book's attributes are also returned.
output.AppendLine("Read the second book using ReadOuterXml...");
output.AppendLine(reader.ReadOuterXml());
}
OutputTextBlock.Text = output.ToString();
The example uses bool.xml file as input.
<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>
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also