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:
Qualsiasi tipo che implementa ToString.
Qualsiasi tipo che implementa IEnumerable.
Quando si aggiunge contenuto complesso, è possibile passare diversi tipi a questo metodo:
Qualsiasi tipo che implementa IEnumerable.
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 |
---|---|
Costruisce un oggetto XElement. |
|
Costruisce un oggetto XDocument. |
|
Aggiunge il contenuto alla fine del contenuto figlio di XElement o XDocument. |
|
Consente di aggiungere contenuto dopo XNode. |
|
Aggiunge contenuto prima di XNode. |
|
Consente di aggiungere il contenuto all'inizio del contenuto figlio di XContainer. |
|
Sostituisce tutto il contenuto (nodi figlio e attributi) di un oggetto XElement. |
|
Sostituisce gli attributi di un oggetto XElement. |
|
Sostituisce i nodi figlio con nuovo contenuto. |
|
Sostituisce un nodo con nuovo contenuto. |