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.