Condividi tramite


Contenuto valido degli oggetti XElement e XDocument (LINQ to XML)

Questo articolo descrive gli argomenti validi che possono essere passati ai costruttori e metodi usati per aggiungere contenuto a elementi e documenti.

Tipi validi per il costruttore XElement

Spesso le query restituiscono IEnumerable<T> di XElement o IEnumerable<T> di XAttribute. È possibile passare raccolte di oggetti XElement o XAttribute al costruttore XElement. Ecco perché è conveniente passare i risultati di una query come contenuto nei metodi e nei costruttori che si utilizzano per popolare gli alberi XML.

Quando si aggiunge contenuto semplice, è possibile passare vari tipi a questo metodo, tra cui:

Quando si aggiunge contenuto complesso, è possibile passare vari tipi a questo metodo, tra cui:

Se un oggetto implementa IEnumerable<T>, l'insieme nell'oggetto viene enumerato e tutti gli elementi dell'insieme vengono aggiunti. Se l'insieme contiene XNode o XAttribute oggetti, ogni elemento dell'insieme viene aggiunto separatamente. Se l'insieme contiene testo (o oggetti convertiti in testo), il testo nella raccolta viene concatenato e aggiunto come nodo di testo singolo.

Se il contenuto è null, non viene aggiunto alcun elemento. Quando si passa una raccolta, gli elementi nella raccolta possono essere null. Un elemento null nella collezione non ha alcun effetto sull'albero.

Un attributo aggiunto deve avere un nome univoco all'interno dell'elemento contenitore.

Quando si aggiungono XNode o XAttribute oggetti, se il nuovo contenuto non ha un elemento padre, gli oggetti vengono semplicemente collegati all'albero XML. Se il nuovo contenuto è già associato come figlio e fa parte di un altro albero XML, viene clonato e il contenuto appena clonato viene associato all'albero XML.

Tipi validi per il costruttore XDocument

Gli attributi e il contenuto semplice non possono essere aggiunti a un documento.

Non esistono molti scenari che richiedono la creazione di un XDocument. In genere è possibile creare alberi XML con un nodo radice XElement. A meno che non si disponga di un requisito specifico per creare un documento (ad esempio, perché è necessario creare istruzioni di elaborazione e commenti al livello superiore oppure è necessario supportare i tipi di documento), è spesso più comodo usare XElement come nodo radice.

I tipi validi per il costruttore XDocument includono quanto segue:

  • Zero o un XDocumentType oggetto. I tipi di documento devono venire prima dell'elemento specifico.
  • Zero o un elemento.
  • Zero o più commenti.
  • Zero o più istruzioni di elaborazione.
  • Zero o più nodi di testo che contengono solo spazi vuoti.

Costruttori e funzioni per l'aggiunta di contenuto

I metodi seguenti consentono di aggiungere contenuti secondari a un XElement o a un XDocument:

Metodo Descrizione
XElement Costruisce un XElement.
XDocument Costruisce un XDocument.
Add Aggiunge alla fine del contenuto figlio del XElement o XDocument.
AddAfterSelf Aggiunge contenuto dopo il XNode.
AddBeforeSelf Aggiunge contenuto prima del XNode.
AddFirst Aggiunge contenuto all'inizio del contenuto figlio del XContainer.
ReplaceAll Sostituisce tutto il contenuto (nodi figlio e attributi) di un elemento XElement.
ReplaceAttributes Sostituisce gli attributi di un XElement.
ReplaceNodes Sostituisce i nodi figli con nuovo contenuto.
ReplaceWith Sostituisce un nodo con nuovo contenuto.

Vedere anche