XmlReader.ReadOuterXml Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
When overridden in a derived class, reads the content, including markup, representing this node and all its children.
Namespace: System.Xml
Assembly: System.Xml (in System.Xml.dll)
Syntax
'Declaration
Public Overridable Function ReadOuterXml As String
public virtual string ReadOuterXml()
Return Value
Type: 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.
Exceptions
Exception | Condition |
---|---|
XmlException | The XML was not well-formed, or an error occurred while parsing the XML. |
Remarks
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:
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> |
<item1>text1</item1> |
On the item2 start tag. |
Attribute |
On the attr1 attribute node. |
<item attr1="val1" attr2="val2">text</item> |
attr1="val1" |
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.
Examples
The following example uses the ReadOuterXml 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