Partilhar via


XElement Construtores

Definição

Inicializa uma nova instância da classe XElement.

Sobrecargas

XElement(XElement)

Inicializa uma nova instância da classe XElement de outro objeto XElement.

XElement(XName)

Inicializa uma nova instância da classe XElement com o nome especificado.

XElement(XStreamingElement)

Inicializa uma nova instância da classe XElement de um objeto XStreamingElement.

XElement(XName, Object)

Inicializa uma nova instância da classe XElement com o nome e conteúdo especificados.

XElement(XName, Object[])

Inicializa uma nova instância da classe XElement com o nome e conteúdo especificados.

Exemplos

O exemplo a seguir cria uma árvore XML. O conteúdo do novo elemento vem de uma consulta LINQ.

XElement xmlTree1 = new XElement("Root",  
    new XElement("Child", 1),  
    new XElement("Child", 2),  
    new XElement("Child", 3),  
    new XElement("Child", 4),  
    new XElement("Child", 5),  
    new XElement("Child", 6)  
);  

XElement xmlTree2 = new XElement("Root",  
    from el in xmlTree1.Elements()  
    where((int)el >= 3 && (int)el <= 5)  
    select el  
);  
Console.WriteLine(xmlTree2);  
Dim xmlTree1 As XElement = _   
        <Root>  
            <Child>1</Child>  
            <Child>2</Child>  
            <Child>3</Child>  
            <Child>4</Child>  
            <Child>5</Child>  
            <Child>6</Child>  
        </Root>  

Dim xmlTree2 As XElement = _  
    <Root>  
        <%= From el In xmlTree1.Elements() _  
            Where el.Value >= 3 And el.Value <= 5 _  
            Select el %>  
    </Root>  

Console.WriteLine(xmlTree2)  

Esse exemplo gera a saída a seguir:

<Root>  
  <Child>3</Child>  
  <Child>4</Child>  
  <Child>5</Child>  
</Root>  

Comentários

Para obter detalhes sobre o conteúdo válido que pode ser passado para este construtor, consulte Conteúdo Válido de Objetos XElement e XDocument.

Há uma conversão implícita de cadeia de caracteres para XName. O uso típico desse construtor é especificar uma cadeia de caracteres como o parâmetro em vez de criar um novo XName.

Ao criar um elemento em um namespace, o uso típico é usar a sobrecarga do operador de adição com uma XNamespace e uma cadeia de caracteres para criar um XName. Para obter mais informações, consulte Trabalhar com namespaces XML.

XElement(XElement)

Inicializa uma nova instância da classe XElement de outro objeto XElement.

public:
 XElement(System::Xml::Linq::XElement ^ other);
public XElement (System.Xml.Linq.XElement other);
new System.Xml.Linq.XElement : System.Xml.Linq.XElement -> System.Xml.Linq.XElement
Public Sub New (other As XElement)

Parâmetros

other
XElement

Um objeto XElement do qual copiar.

Exemplos

O exemplo a seguir cria uma árvore XML, cria um clone da árvore e chama DeepEquals, que testa se as duas árvores XML são iguais.

XElement xmlTree = new XElement("Root",  
    new XAttribute("Att1", 1),  
    new XElement("Child1", 1),  
    new XElement("Child2", 2)  
);  

// Create a clone of the tree.  
XElement treeClone = new XElement(xmlTree);  

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone));  

// Do some work with xmlTree, perhaps pass it to other methods.  
xmlTree.Add(new XElement("Child3", 3));  

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone));  
Dim xmlTree As XElement = _  
        <Root Att1="1">  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
        </Root>  

' Create a clone of the tree.  
Dim treeClone As XElement = New XElement(xmlTree)  

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone))  

' Do some work with xmlTree, perhaps pass it to other methods.  
xmlTree.Add(New XElement("Child3", 3))  

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone))  

Esse exemplo gera a saída a seguir:

xmlTree = treeClone: True  
xmlTree = treeClone: False  

Comentários

Esse construtor faz uma cópia profunda de um elemento.

Confira também

Aplica-se a

XElement(XName)

Inicializa uma nova instância da classe XElement com o nome especificado.

public:
 XElement(System::Xml::Linq::XName ^ name);
public XElement (System.Xml.Linq.XName name);
new System.Xml.Linq.XElement : System.Xml.Linq.XName -> System.Xml.Linq.XElement
Public Sub New (name As XName)

Parâmetros

name
XName

Um XName que contém o nome do elemento.

Exemplos

O exemplo a seguir cria um elemento sem conteúdo.

XElement el = new XElement("Root");  
Console.WriteLine(el);  
Dim el As XElement = <Root/>  
Console.WriteLine(el)  

Esse exemplo gera a saída a seguir:

<Root />  

O exemplo a seguir cria um elemento em um namespace sem conteúdo. Para obter mais informações, consulte Trabalhar com namespaces XML.

XNamespace aw = "http://www.adventure-works.com";  
XElement root = new XElement(aw + "Root");  
Console.WriteLine(root);  
Imports <xmlns="http://www.adventure-works.com">  

Module Module1  
    Sub Main()  
        Dim root = <Root/>  
        Console.WriteLine(root)  
    End Sub  
End Module  

Esse exemplo gera a saída a seguir:

<Root xmlns="http://www.adventure-works.com" />  

Comentários

Esse construtor cria um elemento sem conteúdo e sem atributos.

Há uma conversão implícita de cadeia de caracteres para XName. O uso típico desse construtor é especificar uma cadeia de caracteres como o parâmetro em vez de criar um novo XName. Ao criar um elemento em um namespace, o uso típico é usar a sobrecarga do operador de adição com uma XNamespace e uma cadeia de caracteres para criar um XName. Para obter mais informações, consulte Trabalhar com namespaces XML.

Confira também

Aplica-se a

XElement(XStreamingElement)

Inicializa uma nova instância da classe XElement de um objeto XStreamingElement.

public:
 XElement(System::Xml::Linq::XStreamingElement ^ other);
public XElement (System.Xml.Linq.XStreamingElement other);
new System.Xml.Linq.XElement : System.Xml.Linq.XStreamingElement -> System.Xml.Linq.XElement
Public Sub New (other As XStreamingElement)

Parâmetros

other
XStreamingElement

Um XStreamingElement que contém consultas não avaliadas que serão iteradas para o conteúdo deste XElement.

Exemplos

O exemplo a seguir cria uma árvore XML de origem e cria uma XStreamingElement consulta na árvore XML de origem. Em seguida, serializa o XStreamingElement console, adiciona um novo elemento à árvore XML de origem e serializa novamente XStreamingElement . Você pode ver que o elemento recém-adicionado à árvore XML de origem não está incluído na primeira serialização, mas está incluído no segundo.

XElement src = new XElement("Root",  
                   new XElement("Child1", 1),  
                   new XElement("Child2", 2),  
                   new XElement("Child3", 3)  
               );  
XStreamingElement xse = new XStreamingElement("NewRoot",  
                            from el in src.Elements()  
                            where (int)el >= 2  
                            select el  
                        );  
Console.WriteLine(xse);  
src.Add(new XElement("Child4", 4));  
Console.WriteLine("----");  
Console.WriteLine(xse);  
Dim src As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
        </Root>  
Dim xse As XStreamingElement = New XStreamingElement("NewRoot", _  
        From el In src.Elements() _  
        Where (CInt(el) >= 2) _  
        Select el _  
)  
Console.WriteLine(xse)  
src.Add(New XElement("Child4", 4))  
Console.WriteLine("----")  
Console.WriteLine(xse)  

Esse exemplo gera a saída a seguir:

<NewRoot>  
  <Child2>2</Child2>  
  <Child3>3</Child3>  
</NewRoot>  
----  
<NewRoot>  
  <Child2>2</Child2>  
  <Child3>3</Child3>  
  <Child4>4</Child4>  
</NewRoot>  

Comentários

Esse construtor itera por meio do conteúdo do especificado XStreamingElemente cria um elemento com seu conteúdo.

Confira também

Aplica-se a

XElement(XName, Object)

Inicializa uma nova instância da classe XElement com o nome e conteúdo especificados.

public:
 XElement(System::Xml::Linq::XName ^ name, System::Object ^ content);
public XElement (System.Xml.Linq.XName name, object content);
public XElement (System.Xml.Linq.XName name, object? content);
new System.Xml.Linq.XElement : System.Xml.Linq.XName * obj -> System.Xml.Linq.XElement
Public Sub New (name As XName, content As Object)

Parâmetros

name
XName

Um XName que contém o nome do elemento.

content
Object

O conteúdo do elemento.

Exemplos

O exemplo a seguir cria uma árvore XML. O conteúdo do novo elemento vem de uma consulta LINQ.

XElement xmlTree1 = new XElement("Root",  
    new XElement("Child1", 1),  
    new XElement("Child2", 2),  
    new XElement("Child3", 3),  
    new XElement("Child4", 4),  
    new XElement("Child5", 5),  
    new XElement("Child6", 6)  
);  

XElement xmlTree2 = new XElement("Root",  
    from el in xmlTree1.Elements()  
    where((int)el >= 3 && (int)el <= 5)  
    select el  
);  
Console.WriteLine(xmlTree2);  
Dim xmlTree1 As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
            <Child4>4</Child4>  
            <Child5>5</Child5>  
            <Child6>6</Child6>  
        </Root>  

Dim xmlTree2 As XElement = _  
    <Root>  
        <%= From el In xmlTree1.Elements() _  
            Where el.Value >= 3 And el.Value <= 5 _  
            Select el %>  
    </Root>  

Console.WriteLine(xmlTree2)  

Esse exemplo gera a saída a seguir:

<Root>  
  <Child3>3</Child3>  
  <Child4>4</Child4>  
  <Child5>5</Child5>  
</Root>  

O exemplo a seguir cria uma árvore XML com uma variedade de tipos de conteúdo.

XElement root;  

// String content:  
root = new XElement("Root", "Some text");  
Console.WriteLine(root);  

// XElement object content:  
root = new XElement("Root",   
    new XElement("NewChild", "n")  
);  
Console.WriteLine(root);  

// XAttribute object content:  
root = new XElement("Root",   
    new XAttribute("NewAttribute", "n")  
);  
Console.WriteLine(root);  

// Double content:  
double dbl = 12.345;  
root = new XElement("Root", dbl);  
Console.WriteLine(root);  

// DateTime content:  
DateTime dt = new DateTime(2006, 10, 6, 12, 30, 00);  
root = new XElement("Root", dt);  
Console.WriteLine(root);  

// String array content:  
// Any collection other than a collection of XElement or XAttribute objects  
// are converted to strings. The strings are concatenated and added.  
string[] stringArray = {  
    "abc",  
    "def",  
    "ghi"  
};  
root = new XElement("Root", stringArray);  
Console.WriteLine(root);  

// XElement object array content:  
XElement[] ellArray = {  
    new XElement("NewChild1", 1),  
    new XElement("NewChild2", 2),  
    new XElement("NewChild3", 3)  
};  
root = new XElement("Root", ellArray);  
Console.WriteLine(root);  

// XAttribute object array content:  
XAttribute[] attArray = {  
    new XAttribute("NewAtt1", 1),  
    new XAttribute("NewAtt2", 2),  
    new XAttribute("NewAtt3", 3)  
};  
root = new XElement("Root", attArray);  
Console.WriteLine(root);  
Dim root As XElement  

' String content:  
root = <Root>Some text</Root>  
Console.WriteLine(root)  

' XElement object content:  
root = <Root>  
           <NewChild>n</NewChild>  
       </Root>  
Console.WriteLine(root)  

' XAttribute object content:  
root = <Root NewAttribute="n"/>  
Console.WriteLine(root)  

' Double content:  
Dim dbl As Double = 12.345  
root = <Root><%= dbl %></Root>  
Console.WriteLine(root)  

' DateTime content:  
Dim dt As DateTime = New DateTime(2006, 10, 6, 12, 30, 0)  
root = <Root><%= dt %></Root>  
Console.WriteLine(root)  

' String array content:  
' Any collection other than a collection of XElement or XAttribute objects  
' are converted to strings. The strings are concatenated and added.  

Dim stringArray As String() = { _  
    "abc", _  
    "def", _  
    "ghi" _  
}  
root = <Root><%= stringArray %></Root>  
Console.WriteLine(root)  

' XElement object array content:  
Dim ellArray As XElement() = { _  
    <NewChild1>1</NewChild1>, _  
    <NewChild2>2</NewChild2>, _  
    <NewChild3>3</NewChild3> _  
}  

root = <Root><%= ellArray %></Root>  
Console.WriteLine(root)  

' XAttribute object array content  
Dim attArray As XAttribute() = { _  
    New XAttribute("NewAtt1", 1), _  
    New XAttribute("NewAtt2", 2), _  
    New XAttribute("NewAtt3", 3) _  
}  
root = <Root><%= attArray %></Root>  
Console.WriteLine(root)  

Esse exemplo gera a saída a seguir:

<Root>Some text</Root>  
<Root>  
  <NewChild>n</NewChild>  
</Root>  
<Root NewAttribute="n" />  
<Root>12.345</Root>  
<Root>2006-10-06T12:30:00</Root>  
<Root>abcdefghi</Root>  
<Root>  
  <NewChild1>1</NewChild1>  
  <NewChild2>2</NewChild2>  
  <NewChild3>3</NewChild3>  
</Root>  
<Root NewAtt1="1" NewAtt2="2" NewAtt3="3" />  

O exemplo a seguir cria uma árvore XML em um namespace.

// Create an XML tree in a namespace.  
XNamespace aw = "http://www.adventure-works.com";  
XElement root = new XElement(aw + "Root",  
    new XElement(aw + "Child", "child content")  
);  
Console.WriteLine(root);  
' Create an XML tree in a namespace.  
Dim root As XElement = _   
    <Root xmlns='http://www.adventure-works.com'>  
        <Child>child content</Child>  
    </Root>  
Console.WriteLine(root)  

Esse exemplo gera a saída a seguir:

<Root xmlns="http://www.adventure-works.com">  
  <Child>child content</Child>  
</Root>  

O exemplo a seguir cria uma árvore XML com namespaces aninhados.

// Create an XML tree with nested namespaces.  
XNamespace aw = "http://www.adventure-works.com";  
XNamespace fc = "www.fourthcoffee.com";  
XDocument root = new XDocument(  
    new XDeclaration("1.0", "utf-8", "yes"),  
    new XElement(aw + "Root",  
        new XElement(fc + "Child",  
            new XElement(aw + "DifferentChild", "other content")  
        )  
    )  
);  
Console.WriteLine(root);  
' Create an XML tree with nested namespaces.  
Dim root As XDocument = _   
    <?xml version='1.0'?>  
    <Root xmlns='http://www.adventure-works.com'>  
        <Child xmlns='www.fourthcoffee.com'>  
        <DifferentChild xmlns='http://www.adventure-works.com'>other content</DifferentChild>  
        </Child>  
    </Root>  
Console.WriteLine(root)  

Esse exemplo gera a saída a seguir:

<Root xmlns="http://www.adventure-works.com">  
  <Child xmlns="www.fourthcoffee.com">  
    <DifferentChild xmlns="http://www.adventure-works.com">other content</DifferentChild>  
  </Child>  
</Root>  

Comentários

Esse construtor cria um elemento com o conteúdo e os atributos especificados.

Há uma conversão implícita de cadeia de caracteres para XName. O uso típico desse construtor é especificar uma cadeia de caracteres como o parâmetro em vez de criar um novo XName.

Ao criar um elemento em um namespace, o uso típico é usar a sobrecarga do operador de adição com uma XNamespace e uma cadeia de caracteres para criar um XName. Para obter mais informações, consulte Trabalhar com namespaces XML.

Para obter detalhes sobre o conteúdo válido que pode ser passado para este construtor, consulte Conteúdo Válido de Objetos XElement e XDocument.

Confira também

Aplica-se a

XElement(XName, Object[])

Inicializa uma nova instância da classe XElement com o nome e conteúdo especificados.

public:
 XElement(System::Xml::Linq::XName ^ name, ... cli::array <System::Object ^> ^ content);
public XElement (System.Xml.Linq.XName name, params object[] content);
public XElement (System.Xml.Linq.XName name, params object?[] content);
new System.Xml.Linq.XElement : System.Xml.Linq.XName * obj[] -> System.Xml.Linq.XElement
Public Sub New (name As XName, ParamArray content As Object())

Parâmetros

name
XName

Um XName que contém o nome do elemento.

content
Object[]

O conteúdo inicial do elemento.

Exemplos

O exemplo a seguir cria uma árvore XML. O conteúdo do novo elemento vem de uma consulta LINQ.

XElement xmlTree1 = new XElement("Root",  
    new XElement("Child1", 1),  
    new XElement("Child2", 2),  
    new XElement("Child3", 3),  
    new XElement("Child4", 4),  
    new XElement("Child5", 5),  
    new XElement("Child6", 6)  
);  

XElement xmlTree2 = new XElement("Root",  
    from el in xmlTree1.Elements()  
    where((int)el >= 3 && (int)el <= 5)  
    select el  
);  
Console.WriteLine(xmlTree2);  
Dim xmlTree1 As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
            <Child4>4</Child4>  
            <Child5>5</Child5>  
            <Child6>6</Child6>  
        </Root>  

Dim xmlTree2 As XElement = _   
    <Root>  
        <%= From el In xmlTree1.Elements() _  
            Where el.Value >= 3 And el.Value <= 5 _  
            Select el %>  
    </Root>  

Console.WriteLine(xmlTree2)  

Esse exemplo gera a saída a seguir:

<Root>  
  <Child3>3</Child3>  
  <Child4>4</Child4>  
  <Child5>5</Child5>  
</Root>  

O exemplo a seguir cria uma árvore XML com uma variedade de tipos de conteúdo.

XElement root;  

// String content:  
root = new XElement("Root", "Some text");  
Console.WriteLine(root);  

// XElement object content:  
root = new XElement("Root",   
    new XElement("NewChild", "n")  
);  
Console.WriteLine(root);  

// XAttribute object content:  
root = new XElement("Root",   
    new XAttribute("NewAttribute", "n")  
);  
Console.WriteLine(root);  

// Double content:  
double dbl = 12.345;  
root = new XElement("Root", dbl);  
Console.WriteLine(root);  

// DateTime content:  
DateTime dt = new DateTime(2006, 10, 6, 12, 30, 00);  
root = new XElement("Root", dt);  
Console.WriteLine(root);  

// String array content:  
// Any collection other than a collection of XElement or XAttribute objects  
// are converted to strings. The strings are concatenated and added.  
string[] stringArray = {  
    "abc",  
    "def",  
    "ghi"  
};  
root = new XElement("Root", stringArray);  
Console.WriteLine(root);  

// XElement object array content:  
XElement[] ellArray = {  
    new XElement("NewChild1", 1),  
    new XElement("NewChild2", 2),  
    new XElement("NewChild3", 3)  
};  
root = new XElement("Root", ellArray);  
Console.WriteLine(root);  

// XAttribute object array content:  
XAttribute[] attArray = {  
    new XAttribute("NewAtt1", 1),  
    new XAttribute("NewAtt2", 2),  
    new XAttribute("NewAtt3", 3)  
};  
root = new XElement("Root", attArray);  
Console.WriteLine(root);  
Dim root As XElement  

' String content:  
root = <Root>Some text</Root>  
Console.WriteLine(root)  

' XElement object content:  
root = <Root>  
           <NewChild>n</NewChild>  
       </Root>  
Console.WriteLine(root)  

' XAttribute object content:  
root = <Root NewAttribute="n"/>  
Console.WriteLine(root)  

' Double content:  
Dim dbl As Double = 12.345  
root = <Root><%= dbl %></Root>  
Console.WriteLine(root)  

' DateTime content:  
Dim dt As DateTime = New DateTime(2006, 10, 6, 12, 30, 0)  
root = <Root><%= dt %></Root>  
Console.WriteLine(root)  

' String array content:  
' Any collection other than a collection of XElement or XAttribute objects  
' are converted to strings. The strings are concatenated and added.  

Dim stringArray As String() = { _  
    "abc", _  
    "def", _  
    "ghi" _  
}  
root = <Root><%= stringArray %></Root>  
Console.WriteLine(root)  

' XElement object array content:  
Dim ellArray As XElement() = { _  
    <NewChild1>1</NewChild1>, _  
    <NewChild2>2</NewChild2>, _  
    <NewChild3>3</NewChild3> _  
}  

root = <Root><%= ellArray %></Root>  
Console.WriteLine(root)  

' XAttribute object array content  
Dim attArray As XAttribute() = { _  
    New XAttribute("NewAtt1", 1), _  
    New XAttribute("NewAtt2", 2), _  
    New XAttribute("NewAtt3", 3) _  
}  
root = <Root><%= attArray %></Root>  
Console.WriteLine(root)  

Esse exemplo gera a saída a seguir:

<Root>Some text</Root>  
<Root>  
  <NewChild>n</NewChild>  
</Root>  
<Root NewAttribute="n" />  
<Root>12.345</Root>  
<Root>2006-10-06T12:30:00</Root>  
<Root>abcdefghi</Root>  
<Root>  
  <NewChild1>1</NewChild1>  
  <NewChild2>2</NewChild2>  
  <NewChild3>3</NewChild3>  
</Root>  
<Root NewAtt1="1" NewAtt2="2" NewAtt3="3" />  

O exemplo a seguir cria uma árvore XML em um namespace.

// Create an XML tree in a namespace.  
XNamespace aw = "http://www.adventure-works.com";  
XElement root = new XElement(aw + "Root",  
    new XElement(aw + "Child", "child content")  
);  
Console.WriteLine(root);  
' Create an XML tree in a namespace.  
Dim root As XElement = _   
    <Root xmlns='http://www.adventure-works.com'>  
        <Child>child content</Child>  
    </Root>  
Console.WriteLine(root)  

Esse exemplo gera a saída a seguir:

<Root xmlns="http://www.adventure-works.com">  
  <Child>child content</Child>  
</Root>  

O exemplo a seguir cria uma árvore XML com namespaces aninhados.

// Create an XML tree with nested namespaces.  
XNamespace aw = "http://www.adventure-works.com";  
XNamespace fc = "www.fourthcoffee.com";  
XElement root = new XElement(aw + "Root",  
    new XElement(fc + "Child",  
        new XElement(aw + "DifferentChild", "other content")  
    )  
);  
Console.WriteLine(root);  
' Create an XML tree with nested namespaces.  
Dim root As XDocument = _   
    <?xml version='1.0'?>  
    <Root xmlns='http://www.adventure-works.com'>  
        <Child xmlns='www.fourthcoffee.com'>  
        <DifferentChild xmlns='http://www.adventure-works.com'>other content</DifferentChild>  
        </Child>  
    </Root>  
Console.WriteLine(root)  

Esse exemplo gera a saída a seguir:

<Root xmlns="http://www.adventure-works.com">  
  <Child xmlns="www.fourthcoffee.com">  
    <DifferentChild xmlns="http://www.adventure-works.com">other content</DifferentChild>  
  </Child>  
</Root>  

Comentários

Esse construtor cria um elemento com o conteúdo e os atributos especificados.

Há uma conversão implícita de cadeia de caracteres para XName. O uso típico desse construtor é especificar uma cadeia de caracteres como o parâmetro em vez de criar um novo XName.

Ao criar um elemento em um namespace, o uso típico é usar a sobrecarga do operador de adição com uma XNamespace e uma cadeia de caracteres para criar um XName. Para obter mais informações, consulte Trabalhar com namespaces XML.

Para obter detalhes sobre o conteúdo válido que pode ser passado para este construtor, consulte Conteúdo Válido de Objetos XElement e XDocument.

Confira também

Aplica-se a