Contenu valide des objets XElement et XDocument (LINQ to XML)
Cet article décrit les arguments valides qui peuvent être passés aux constructeurs et aux méthodes que vous utilisez pour ajouter du contenu à des éléments et des documents.
Types valides pour le constructeur XElement
Les requêtes sont souvent évaluées à un objet IEnumerable<T> de XElement ou un objet IEnumerable<T> de XAttribute. Vous pouvez transmettre des collections d’objets XElement ou XAttribute au constructeur XElement. C’est pourquoi il est pratique de transmettre les résultats d’une requête en tant que contenu dans des méthodes et des constructeurs que vous utilisez pour remplir des arborescences XML.
Lors de l’ajout de contenu simple, différents types peuvent être passés à cette méthode, notamment :
- String
- Double
- Single
- Decimal
- Boolean
- DateTime
- TimeSpan
- DateTimeOffset
- Tout type qui implémente
Object.ToString
. - Tout type qui implémente IEnumerable<T>.
Lors de l’ajout de contenu complexe, différents types peuvent être passés à cette méthode, notamment :
- XObject
- XNode
- XAttribute
- Tout type qui implémente IEnumerable<T>
Si un objet implémente IEnumerable<T>, la collection de l’objet est énumérée et tous les éléments de la collection sont ajoutés. Si la collection contient des objets XNode ou XAttribute, chaque élément de la collection est ajouté séparément. Si la collection contient du texte (ou des objets convertis en texte), le texte de la collection est concaténé et ajouté en tant que nœud de texte unique.
Si le contenu est null
, rien n’est ajouté. Lors du passage d'une collection, des éléments de cette collection peuvent avoir la valeur null
. Un élément null
dans la collection n'a aucun effet sur l'arborescence.
Un attribut ajouté doit avoir un nom unique dans son élément conteneur.
Lorsque vous ajoutez des objets XNode ou XAttribute, si le nouveau contenu n’a pas de parent, les objets sont simplement attachés à l’arborescence XML. Si le nouveau contenu est déjà parenté et fait partie d’une autre arborescence XML, le nouveau contenu est cloné et le contenu nouvellement cloné est attaché à l’arborescence XML.
Types valides pour le constructeur XDocument
Les attributs et le contenu simple ne peuvent pas être ajoutés à un document.
Il n'existe pas beaucoup de scénarios qui requièrent la création d'un objet XDocument. Au lieu de cela, vous pouvez généralement créer vos arborescences XML avec un nœud racine XElement. Sauf si vous avez une exigence spécifique pour créer un document (par exemple, parce que vous devez créer des instructions de traitement et des commentaires au niveau supérieur, ou que vous devez prendre en charge les types de documents), il est souvent plus pratique d’utiliser XElement en tant que nœud racine.
Les types valides pour le constructeur XDocument incluent les éléments suivants :
- Zéro ou un objet XDocumentType. Les types de documents doivent précéder l’élément.
- Zéro ou un élément.
- Zéro ou plusieurs commentaires.
- Zéro ou plusieurs instructions de traitement.
- Zéro ou plusieurs nœuds de texte qui contiennent uniquement des espaces blancs.
Constructeurs et fonctions pour l’ajout de contenu
Les méthodes suivantes vous permettent d’ajouter du contenu enfant à un XElement ou à un XDocument:
Méthode | Description |
---|---|
XElement | Construit un objet XElement. |
XDocument | Construit un objet XDocument. |
Add | Ajoute à la fin du contenu enfant de l'objet XElement ou XDocument. |
AddAfterSelf | Ajoute du contenu après le XNode. |
AddBeforeSelf | Ajoute du contenu avant l'objet XNode. |
AddFirst | Ajoute du contenu au début du contenu enfant de l'objet XContainer. |
ReplaceAll | Remplace tout le contenu (nœuds enfants et attributs) d'un objet XElement. |
ReplaceAttributes | Remplace les attributs d'un objet XElement. |
ReplaceNodes | Remplace les nœuds enfants par du nouveau contenu. |
ReplaceWith | Remplace un nœud par un nouveau contenu. |