XElement Costruttori

Definizione

Inizializza una nuova istanza della classe XElement.

Overload

Nome Descrizione
XElement(XElement)

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

XElement(XName)

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

XElement(XStreamingElement)

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

XElement(XName, Object)

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

XElement(XName, Object[])

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

In questo esempio viene generato l'output seguente:

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

Commenti

Per informazioni dettagliate sul contenuto valido che può essere passato a questo costruttore, vedere Contenuto valido di oggetti XElement e XDocument.

È presente una conversione implicita da 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 addizione con e XNamespace una stringa per creare un oggetto XName. Per altre informazioni, vedere Usare spazi dei nomi XML.

XElement(XElement)

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

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

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

Nell'esempio seguente viene creato un albero XML, viene creato un clone dell'albero e viene quindi chiamato 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))

In questo esempio viene generato l'output seguente:

xmlTree = treeClone: True
xmlTree = treeClone: False

Commenti

Questo costruttore crea una copia completa di un elemento.

Vedi anche

Si applica a

XElement(XName)

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

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

In questo esempio viene generato l'output seguente:

<Root />

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

In questo esempio viene generato 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 da 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 addizione con e XNamespace una stringa per creare un oggetto XName. Per altre informazioni, vedere Usare spazi dei nomi XML.

Vedi anche

Si applica a

XElement(XStreamingElement)

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

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

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 che verranno iterate per il contenuto di questo XElementoggetto .

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

In questo esempio viene generato 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 scorre il 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
Origine:
XElement.cs
Origine:
XElement.cs

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

In questo esempio viene generato l'output seguente:

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

Nell'esempio seguente viene creato un albero XML con diversi 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)

In questo esempio viene generato 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)

In questo esempio viene generato 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)

In questo esempio viene generato 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 da 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 addizione con e XNamespace una stringa per creare un oggetto XName. Per altre informazioni, vedere Usare spazi dei nomi XML.

Per informazioni dettagliate sul contenuto valido che può essere passato a questo costruttore, vedere Contenuto valido di oggetti XElement e XDocument.

Vedi anche

Si applica a

XElement(XName, Object[])

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

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

In questo esempio viene generato l'output seguente:

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

Nell'esempio seguente viene creato un albero XML con diversi 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)

In questo esempio viene generato 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)

In questo esempio viene generato 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)

In questo esempio viene generato 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 da 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 addizione con e XNamespace una stringa per creare un oggetto XName. Per altre informazioni, vedere Usare spazi dei nomi XML.

Per informazioni dettagliate sul contenuto valido che può essere passato a questo costruttore, vedere Contenuto valido di oggetti XElement e XDocument.

Vedi anche

Si applica a