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 méthodes utilisés pour ajouter du contenu aux éléments et aux 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 passer des collections d'objets XElement ou XAttribute au constructeur XElement. Par conséquent, il est commode de passer 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, divers 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, divers 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 dans 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 dans la collection est concaténé et ajouté en tant que nœud de texte simple.
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.
Lors de l’ajout d’objets XNode ou XAttribute, si le contenu n’a pas de parent, les objets sont simplement attachés à l’arborescence XML. Si le nouveau contenu a déjà un parent et fait partie d'une autre arborescence XML, il est cloné et le nouveau contenu 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. À moins que la création d'un document ne soit spécifiquement requise (par exemple si vous devez créer des instructions de traitement et des commentaires au niveau supérieur ou si vous devez prendre en charge des types de documents), il est souvent plus commode d'utiliser XElement comme nœud racine.
Les types valides pour le constructeur XDocument sont les suivants :
- Zéro ou un objet XDocumentType. Les types de documents doivent figurer avant 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 objet XElement ou 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 l'objet 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 du nouveau contenu. |