Panoramica della classe XElement

XElement è una delle classi fondamentali di LINQ to XML. Rappresenta un elemento XML. Di seguito sono elencate le operazioni per cui è possibile usare questa classe:

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

È inoltre possibile definire l'interoperabilità con altre classi di System.Xml, ad esempio XmlReader, XmlWriter e XslCompiledTransform.

In questo articolo viene descritta la funzionalità fornita dalla classe XElement.

Costruire alberi XML

È possibile costruire alberi XML in modi diversi, tra cui:

  • È possibile costruire un albero XML nel codice. Per altre informazioni, vedere Alberi XML.
  • È possibile analizzare codice XML di origini diverse, incluso un oggetto TextReader, file di testo o un indirizzo Web (URL). Per ulteriori informazioni, vedere Come analizzare una stringa XML.
  • È possibile usare un oggetto XmlReader per popolare l'albero. Per ulteriori informazioni, vedere ReadFrom.
  • Se è presente un modulo che può scrivere contenuto in una classe XmlWriter, è possibile usare il metodo CreateWriter per creare un writer, passare il writer al modulo e quindi usare il contenuto scritto in XmlWriter per popolare l'albero XML.

Nell'esempio seguente viene creato un albero. Nella versione C# vengono usate creazioni di elementi annidati. È possibile usare la stessa tecnica in Visual Basic, ma in questo esempio vengono usati 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)

Nell'esempio viene prodotto 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 oggetto File, TextWriter o XmlWriter.

Per altre informazioni, vedere Serializzare alberi XML.

Recuperare dati XML tramite metodi dell'asse

È possibile usare metodi dell'asse per recuperare attributi, elementi figlio, elementi discendenti ed elementi predecessori. Le query LINQ to XML vengono eseguite sui metodi dell'asse e forniscono numerose funzionalità flessibili e potenti per spostarsi in un albero XML ed elaborarla.

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 di query.

Modificare alberi XML

È possibile modificare un elemento in modi diversi, ad esempio cambiandone il contenuto o gli attributi. È inoltre possibile rimuovere un elemento dal relativo elemento padre.

Per altre informazioni, vedere Modificare alberi XML.

Vedi anche