Share via


XDocument Constructor

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Include Protected Members
Include Inherited Members

Include Silverlight Members
Include Silverlight for Windows Phone Members
Include XNA Framework Members

Initializes a new instance of the XDocument class.

This member is overloaded. For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

Overload List

  Name Description
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 XDocument() Initializes a new instance of the XDocument class.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 XDocument(array<Object[]) Initializes a new instance of the XDocument class with the specified content.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 XDocument(XDocument) Initializes a new instance of the XDocument class from an existing XDocument object.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 XDocument(XDeclaration, array<Object[]) Initializes a new instance of the XDocument class with the specified XDeclaration and content.

Top

Remarks

Overloaded constructors enable you to create a new empty XDocument; to create an XDocument with some specified initial content; and to create an XDocument as a copy of another XDocument object.

There are not many scenarios that require you to create an XDocument. Instead, you can usually create your XML trees with an XElement root node. Unless you have a specific requirement to create a document (for example, because you have to create processing instructions and comments at the top level, or you have to support document types), it is often more convenient to use XElement as your root node.

For more information about the valid content of an XDocument, see Valid Content of XElement and XDocument Objects in the .NET Framework documentation.

Examples

The following example creates a document, and then adds a comment and an element to it. It then composes another document using the results of a query.

Dim output As New StringBuilder
Dim srcTree As XDocument = _
    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <!--This is a comment-->
    <Root>
        <Child1>data1</Child1>
        <Child2>data2</Child2>
        <Child3>data3</Child3>
        <Child2>data4</Child2>
        <Info5>info5</Info5>
        <Info6>info6</Info6>
        <Info7>info7</Info7>
        <Info8>info8</Info8>
    </Root>
Dim doc As XDocument = _
    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <!--This is a comment-->
    <Root>
        <%= From el In srcTree.<Root>.Elements _
            Where CStr(el).StartsWith("data") _
            Select el %>
    </Root>
output.Append(doc)
output.Append(Environment.NewLine)

OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
XDocument srcTree = new XDocument(
    new XComment("This is a comment"),
    new XElement("Root",
        new XElement("Child1", "data1"),
        new XElement("Child2", "data2"),
        new XElement("Child3", "data3"),
        new XElement("Child2", "data4"),
        new XElement("Info5", "info5"),
        new XElement("Info6", "info6"),
        new XElement("Info7", "info7"),
        new XElement("Info8", "info8")
    )
);

XDocument doc = new XDocument(
    new XComment("This is a comment"),
    new XElement("Root",
        from el in srcTree.Element("Root").Elements()
        where ((string)el).StartsWith("data")
        select el
    )
);
output.Append(doc + Environment.NewLine);

OutputTextBlock.Text = output.ToString();