Condividi tramite


Panoramica della classe XElement

La XElement classe è una delle classi fondamentali in LINQ to XML. Rappresenta un elemento XML. L'elenco seguente mostra cosa è possibile usare questa classe per:

  • Creare elementi.
  • Modificare il contenuto dell'elemento.
  • Aggiungere, modificare o eliminare elementi figli.
  • Aggiungere attributi a un elemento.
  • Serializzare il contenuto di un elemento in formato testo.

È anche possibile interagire con altre classi in System.Xml, ad esempio XmlReader, XmlWritere XslCompiledTransform.

Questo articolo descrive le funzionalità fornite dalla XElement classe .

Costruire alberi XML

È possibile costruire alberi XML in modi diversi, inclusi i seguenti:

  • È possibile costruire un albero XML nel codice. Per altre informazioni, vedere Alberi XML.
  • È possibile analizzare il codice XML da varie origini, tra cui file TextReaderdi testo o un indirizzo Web (URL). Per altre informazioni, vedere Analizzare XML.
  • È possibile usare un oggetto XmlReader per popolare l'albero. Per altre informazioni, vedere ReadFrom.
  • Se si dispone di un modulo in grado di scrivere contenuto in un XmlWriteroggetto , è possibile usare il CreateWriter metodo per creare un writer, passare il writer al modulo e quindi usare il contenuto scritto nell'oggetto XmlWriter per popolare l'albero XML.

Nell'esempio seguente viene creato un albero. La versione C# usa creazioni di elementi annidati. È possibile usare la stessa tecnica in Visual Basic, ma in questo esempio vengono utilizzati valori letterali XML.

XElement contacts =
    new XElement("Contacts",
        new XElement("Contact",
            new XElement("Name", "Patrick Hines"),
            new XElement("Phone", "206-555-0144"),
            new XElement("Address",
                new XElement("Street1", "123 Main St"),
                new XElement("City", "Mercer Island"),
                new XElement("State", "WA"),
                new XElement("Postal", "68042")
            )
        )
    );
Dim contacts As XElement = _
    <Contacts>
        <Contact>
            <Name>Patrick Hines</Name>
            <Phone>206-555-0144</Phone>
            <Address>
                <Street1>123 Main St</Street1>
                <City>Mercer Island</City>
                <State>WA</State>
                <Postal>68042</Postal>
            </Address>
        </Contact>
    </Contacts>

È anche possibile usare una query LINQ to XML per popolare un albero XML, come illustrato nell'esempio seguente:

XElement srcTree = new XElement("Root",
    new XElement("Element", 1),
    new XElement("Element", 2),
    new XElement("Element", 3),
    new XElement("Element", 4),
    new XElement("Element", 5)
);
XElement xmlTree = new XElement("Root",
    new XElement("Child", 1),
    new XElement("Child", 2),
    from el in srcTree.Elements()
    where (int)el > 2
    select el
);
Console.WriteLine(xmlTree);
Dim srcTree As XElement = _
    <Root>
        <Element>1</Element>
        <Element>2</Element>
        <Element>3</Element>
        <Element>4</Element>
        <Element>5</Element>
    </Root>
Dim xmlTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <%= From el In srcTree.Elements() _
            Where el.Value > 2 _
            Select el %>
    </Root>
Console.WriteLine(xmlTree)

In questo esempio viene generato l'output seguente:

<Root>
  <Child>1</Child>
  <Child>2</Child>
  <Element>3</Element>
  <Element>4</Element>
  <Element>5</Element>
</Root>

Serializzare alberi XML

È possibile serializzare l'albero XML in un File, un TextWriter o un XmlWriter.

Per altre informazioni, vedere Serializzare alberi XML.

Recuperare dati XML tramite metodi di Axis

È possibile usare i metodi dell'asse per recuperare attributi, elementi figlio, elementi discendenti ed elementi predecessori. Le query LINQ to XML operano sui metodi dell'asse XML e offrono diversi modi flessibili e potenti per esplorare e analizzare un albero XML.

Per altre informazioni, vedere Panoramica degli assi LINQ to XML.

Eseguire query su alberi XML

È possibile scrivere query LINQ to XML che estraggono dati da un albero XML.

Per altre informazioni, vedere Panoramica degli alberi XML delle query.

Modificare alberi XML

È possibile modificare un elemento in modi diversi, inclusa la modifica del contenuto o degli attributi. È anche possibile rimuovere un elemento dal relativo elemento padre.

Per altre informazioni, vedere Modificare alberi XML.

Vedere anche