Condividi tramite


Cenni preliminari sulla classe XElement

XElement è una delle classi fondamentali di LINQ to XML.Rappresenta un elemento XML.Può essere utilizzata per creare elementi, modificare il contenuto dell'elemento, aggiungere, modificare o eliminare elementi figlio, aggiungere attributi a un elemento oppure 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.

Funzionalità di XElement

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

Costruzione di strutture ad albero XML

È possibile costruire strutture ad albero XML in diversi modi:

  • È possibile costruire una struttura ad albero XML nel codice.Per ulteriori informazioni, vedere Creazione di 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 Analisi di XML.

  • È possibile utilizzare un oggetto XmlReader per popolare la struttura ad albero.Per ulteriori informazioni, vedere ReadFrom.

  • Se si dispone di un modulo in grado di scrivere contenuto in un oggetto XmlWriter, è possibile utilizzare il metodo CreateWriter per creare un writer, passare il writer al modulo e quindi utilizzare il contenuto scritto in XmlWriter per popolare la struttura ad albero XML.

Tuttavia, il modo più comune per creare una struttura ad albero XML è il seguente:

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>

Un'altra tecnica molto comune per la creazione di una struttura ad albero XML implica l'utilizzo dei risultati di una query LINQ per popolare una struttura ad 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)

L'output ottenuto eseguendo l'esempio è il seguente:

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

Serializzazione di strutture ad albero XML

È possibile serializzare la struttura ad albero XML in un oggetto File, TextWriter o XmlWriter.

Per ulteriori informazioni, vedere Serializzazione di alberi XML.

Recupero di dati XML tramite metodi dell'asse

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

Per ulteriori informazioni, vedere Assi LINQ to XML.

Esecuzione di query su strutture ad albero XML

È possibile scrivere query LINQ per estrarre dati da una struttura ad albero XML.

Per ulteriori informazioni, vedere Esecuzione di query su alberi XML.

Modifica di strutture ad albero XML

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

Per ulteriori informazioni, vedere Modifica di alberi XML (LINQ to XML).

Vedere anche

Concetti

Cenni preliminari sulla programmazione con LINQ to XML