Condividi tramite


XElement Costruttori

Definizione

Inizializza una nuova istanza della classe XElement.

Overload

XElement(XElement)

Inizializza una nuova istanza della classe XElement con un altro oggetto XElement.

XElement(XName)

Inizializza una nuova istanza della classe XElement con il nome specificato.

XElement(XStreamingElement)

Inizializza una nuova istanza della classe XElement con un oggetto XStreamingElement.

XElement(XName, Object)

Inizializza una nuova istanza della classe XElement con il nome e il contenuto specificati.

XElement(XName, Object[])

Inizializza una nuova istanza della classe XElement con il nome e il contenuto specificati.

Esempio

Nell'esempio seguente viene creato un albero XML. Il contenuto del nuovo elemento proviene da una query 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)

Nell'esempio viene prodotto l'output seguente:

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

Commenti

Per informazioni dettagliate sul contenuto valido che è possibile passare a questo costruttore, vedere Contenuto valido degli oggetti XElement e XDocument.

È presente una conversione implicita dalla stringa a XName. L'uso tipico di questo costruttore consiste nel specificare una stringa come parametro anziché creare un nuovo XNameoggetto .

Quando si crea un elemento in uno spazio dei nomi, l'uso tipico consiste nell'usare l'overload dell'operatore di aggiunta con un XNamespace oggetto e una stringa per creare un XNameoggetto . Per altre informazioni, vedere Usare gli spazi dei nomi XML.

XElement(XElement)

Origine:
XElement.cs
Origine:
XElement.cs
Origine:
XElement.cs

Inizializza una nuova istanza della classe XElement con un altro oggetto 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)

Parametri

other
XElement

Oggetto XElement da cui copiare.

Esempio

L'esempio seguente crea un albero XML, crea un clone dell'albero e quindi chiama DeepEquals, che verifica se i due alberi XML sono uguali.

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))

Nell'esempio viene prodotto l'output seguente:

xmlTree = treeClone: True
xmlTree = treeClone: False

Commenti

Questo costruttore crea una copia profonda di un elemento.

Vedi anche

Si applica a

XElement(XName)

Origine:
XElement.cs
Origine:
XElement.cs
Origine:
XElement.cs

Inizializza una nuova istanza della classe XElement con il nome specificato.

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)

Parametri

name
XName

Oggetto XName che contiene il nome dell'elemento.

Esempio

Nell'esempio seguente viene creato un elemento senza contenuto.

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

Nell'esempio viene prodotto l'output seguente:

<Root />

Nell'esempio seguente viene creato un elemento in uno spazio dei nomi senza contenuto. Per altre informazioni, vedere Usare gli spazi dei nomi 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

Nell'esempio viene prodotto l'output seguente:

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

Commenti

Questo costruttore crea un elemento senza contenuto e senza attributi.

È presente una conversione implicita dalla stringa a XName. L'uso tipico di questo costruttore consiste nel specificare una stringa come parametro anziché creare un nuovo XNameoggetto . Quando si crea un elemento in uno spazio dei nomi, l'uso tipico consiste nell'usare l'overload dell'operatore di aggiunta con un XNamespace oggetto e una stringa per creare un XNameoggetto . Per altre informazioni, vedere Usare gli spazi dei nomi XML.

Vedi anche

Si applica a

XElement(XStreamingElement)

Origine:
XElement.cs
Origine:
XElement.cs
Origine:
XElement.cs

Inizializza una nuova istanza della classe XElement con un oggetto 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)

Parametri

other
XStreamingElement

Oggetto XStreamingElement che contiene query non valutate di cui verrà eseguita l'iterazione per il contenuto di XElement.

Esempio

Nell'esempio seguente viene creato un albero XML di origine e quindi viene creato un oggetto XStreamingElement da una query nell'albero XML di origine. Serializza quindi l'oggetto XStreamingElement nella console, aggiunge un nuovo elemento all'albero XML di origine e quindi serializza di nuovo.XStreamingElement È possibile notare che l'elemento appena aggiunto all'albero XML di origine non è incluso nella prima serializzazione, ma è incluso nel secondo.

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)

Nell'esempio viene prodotto l'output seguente:

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

Commenti

Questo costruttore esegue l'iterazione del contenuto dell'oggetto specificato XStreamingElemente crea un elemento con il relativo contenuto.

Vedi anche

Si applica a

XElement(XName, Object)

Origine:
XElement.cs
Origine:
XElement.cs
Origine:
XElement.cs

Inizializza una nuova istanza della classe XElement con il nome e il contenuto specificati.

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)

Parametri

name
XName

Oggetto XName contenente il nome dell'elemento.

content
Object

Contenuto dell'elemento.

Esempio

Nell'esempio seguente viene creato un albero XML. Il contenuto del nuovo elemento proviene da una query 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)

Nell'esempio viene prodotto l'output seguente:

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

Nell'esempio seguente viene creato un albero XML con un'ampia gamma di tipi di contenuto.

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)

Nell'esempio viene prodotto l'output seguente:

<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" />

Nell'esempio seguente viene creato un albero XML in uno spazio dei nomi.

// 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)

Nell'esempio viene prodotto l'output seguente:

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

Nell'esempio seguente viene creato un albero XML con spazi dei nomi annidati.

// 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)

Nell'esempio viene prodotto l'output seguente:

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

Commenti

Questo costruttore crea un elemento con il contenuto e gli attributi specificati.

È presente una conversione implicita dalla stringa a XName. L'uso tipico di questo costruttore consiste nel specificare una stringa come parametro anziché creare un nuovo XNameoggetto .

Quando si crea un elemento in uno spazio dei nomi, l'uso tipico consiste nell'usare l'overload dell'operatore di aggiunta con un XNamespace oggetto e una stringa per creare un XNameoggetto . Per altre informazioni, vedere Usare gli spazi dei nomi XML.

Per informazioni dettagliate sul contenuto valido che è possibile passare a questo costruttore, vedere Contenuto valido degli oggetti XElement e XDocument.

Vedi anche

Si applica a

XElement(XName, Object[])

Origine:
XElement.cs
Origine:
XElement.cs
Origine:
XElement.cs

Inizializza una nuova istanza della classe XElement con il nome e il contenuto specificati.

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())

Parametri

name
XName

Oggetto XName contenente il nome dell'elemento.

content
Object[]

Contenuto iniziale dell'elemento.

Esempio

Nell'esempio seguente viene creato un albero XML. Il contenuto del nuovo elemento proviene da una query 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)

Nell'esempio viene prodotto l'output seguente:

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

Nell'esempio seguente viene creato un albero XML con un'ampia gamma di tipi di contenuto.

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)

Nell'esempio viene prodotto l'output seguente:

<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" />

Nell'esempio seguente viene creato un albero XML in uno spazio dei nomi.

// 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)

Nell'esempio viene prodotto l'output seguente:

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

Nell'esempio seguente viene creato un albero XML con spazi dei nomi annidati.

// 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)

Nell'esempio viene prodotto l'output seguente:

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

Commenti

Questo costruttore crea un elemento con il contenuto e gli attributi specificati.

È presente una conversione implicita dalla stringa a XName. L'uso tipico di questo costruttore consiste nel specificare una stringa come parametro anziché creare un nuovo XNameoggetto .

Quando si crea un elemento in uno spazio dei nomi, l'uso tipico consiste nell'usare l'overload dell'operatore di aggiunta con un XNamespace oggetto e una stringa per creare un XNameoggetto . Per altre informazioni, vedere Usare gli spazi dei nomi XML.

Per informazioni dettagliate sul contenuto valido che è possibile passare a questo costruttore, vedere Contenuto valido degli oggetti XElement e XDocument.

Vedi anche

Si applica a