XmlNode.OuterXml Property (System.Xml)

Switch View :
ScriptFree
.NET Framework Class Library
XmlNode.OuterXml Property

Gets the markup representing this node and all its child nodes.

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)
Syntax

Visual Basic
Public Overridable ReadOnly Property OuterXml As String
	Get
C#
public virtual string OuterXml { get; }
Visual C++
public:
virtual property String^ OuterXml {
	String^ get ();
}
F#
abstract OuterXml : string
override OuterXml : string

Property Value

Type: System.String
The markup containing this node and all its child nodes.
NoteNote

OuterXml does not return default attributes.

Remarks

This property is a Microsoft extension to the Document Object Model (DOM).

Examples

The following example compares output from the InnerXml and OuterXml properties.

Visual Basic

Option Explicit
Option Strict

Imports System
Imports System.IO
Imports System.Xml

Public Class Sample

    Public Shared Sub Main()

        Dim doc As New XmlDocument()
        doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "</book>")

        Dim root As XmlNode = doc.DocumentElement

        ' OuterXml includes the markup of current node.
        Console.WriteLine("Display the OuterXml property...")
        Console.WriteLine(root.OuterXml)

        ' InnerXml does not include the markup of the current node.
        ' As a result, the attributes are not displayed.
        Console.WriteLine()
        Console.WriteLine("Display the InnerXml property...")
        Console.WriteLine(root.InnerXml)

    End Sub 'Main 
End Class 'Sample


C#

using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    // OuterXml includes the markup of current node.
    Console.WriteLine("Display the OuterXml property...");
    Console.WriteLine(root.OuterXml);

    // InnerXml does not include the markup of the current node.
    // As a result, the attributes are not displayed.
    Console.WriteLine();
    Console.WriteLine("Display the InnerXml property...");
    Console.WriteLine(root.InnerXml);

  }
}


Visual C++

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<book genre='novel' ISBN='1-861001-57-5'>"
   "<title>Pride And Prejudice</title>"
   "</book>" );
   XmlNode^ root = doc->DocumentElement;

   // OuterXml includes the markup of current node.
   Console::WriteLine( "Display the OuterXml property..." );
   Console::WriteLine( root->OuterXml );

   // InnerXml does not include the markup of the current node.
   // As a result, the attributes are not displayed.
   Console::WriteLine();
   Console::WriteLine( "Display the InnerXml property..." );
   Console::WriteLine( root->InnerXml );
}



Version Information

.NET Framework

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

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference

Community Content

soyuz
Get Indented Xml String

static void Main(string[] args)
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml("<book><page></page></book>"); // unindented xml
using (MemoryStream ms = new MemoryStream())
{
XmlWriterSettings xws = new XmlWriterSettings();
xws.Indent = true;
using (XmlWriter xmlWriter = XmlWriter.Create(ms, xws))
{
xmlDocument.WriteTo(xmlWriter);
}
ms.Position = 0; StreamReader sr = new StreamReader(ms);
string s = sr.ReadToEnd(); // s will contain indented xml
Console.WriteLine(s);
}
}