Condividi tramite


Contenuto valido di oggetti XElement e XDocument

In questo argomento vengono illustrati gli argomenti validi che è possibile passare a costruttori e i metodi usati per aggiungere contenuto a elementi e documenti.

Contenuto valido

Le query spesso restituiscono XElement come valore di IEnumerable o XAttribute come valore di IEnumerable. È possibile passare raccolte di oggetti XElement o XAttribute al costruttore XElement. Pertanto è comodo passare i risultati di una query come contenuto in metodi e costruttori usati per popolare alberi XML.

Quando si aggiunge contenuto semplice, è possibile passare diversi tipi a questo metodo. I tipi validi sono i seguenti:

Quando si aggiunge contenuto complesso, è possibile passare diversi tipi a questo metodo:

Se un oggetto implementa IEnumerable, la raccolta nell'oggetto viene enumerata e vengono aggiunti tutti gli elementi della raccolta. Se la raccolta contiene oggetti XNode o XAttribute, ogni elemento della raccolta viene aggiunto separatamente. Se la raccolta contiene testo (oppure oggetti convertiti in testo), il testo della raccolta viene concatenato e aggiunto come un unico nodo di tipo text.

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

Un attributo aggiunto deve includere un nome univoco nell'elemento che lo contiene.

Se quando si aggiungono oggetti XNode o XAttribute, il nuovo contenuto non ha elementi padre, gli oggetti vengono semplicemente collegati all'albero XML. Se invece il nuovo contenuto include già elementi padre e fa parte di un altro albero XML, viene duplicato e quindi collegato all'albero XML.

Contenuto valido per documenti

Non è possibile aggiungere attributi e contenuto semplice a un documento.

Non sono molti gli scenari in cui è richiesta la creazione di un oggetto XDocument. In genere, è invece possibile creare alberi XML con un nodo radice XElement. A meno di particolari esigenze che richiedono la creazione di un documento, ad esempio perché è necessario creare istruzioni di elaborazione e commenti al primo livello o supportare tipi di documento, è consigliabile usare XElement come nodo radice.

Il contenuto valido per un documento è il seguente:

  • Zero o un oggetto XDocumentType. I tipi di documento devono essere inseriti prima dell'elemento.

  • Zero o un elemento.

  • Zero o più commenti.

  • Zero o più istruzioni di elaborazione.

  • Zero o più nodi di tipo text che contengono solo spazi vuoti.

Costruttori e funzioni che consentono l'aggiunta di contenuto

I metodi seguenti consentono di aggiungere contenuto figlio a un oggetto XElement o XDocument:

Metodo

Descrizione

#ctor

Costruisce un oggetto XElement.

#ctor

Costruisce un oggetto XDocument.

Add

Aggiunge il contenuto alla fine del contenuto figlio di XElement o XDocument.

AddAfterSelf

Consente di aggiungere contenuto dopo XNode.

AddBeforeSelf

Aggiunge contenuto prima di XNode.

AddFirst

Consente di aggiungere il contenuto all'inizio del contenuto figlio di XContainer.

ReplaceAll

Sostituisce tutto il contenuto (nodi figlio e attributi) di un oggetto XElement.

ReplaceAttributes

Sostituisce gli attributi di un oggetto XElement.

ReplaceNodes

Sostituisce i nodi figlio con nuovo contenuto.

ReplaceWith

Sostituisce un nodo con nuovo contenuto.

Vedere anche

Concetti

Creazione di alberi XML