XmlReader.ReadOuterXml Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
When overridden in a derived class, reads the content, including markup, representing this node and all its children.
Assembly: System.Xml (in System.Xml.dll)
Return Value
Type: System.StringIf 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.
| Exception | Condition |
|---|---|
| XmlException | The XML was not well-formed, or an error occurred while parsing the XML. |
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.
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()
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>