Conservation des espaces lors du chargement ou de l'analyse de code XML
Cette rubrique décrit comment contrôler le comportement d'espace blanc de LINQ to XML.
Un scénario courant consiste à lire le code XML mis en retrait, à créer une arborescence XML en mémoire sans nœuds d'espaces (autrement dit, ne pas conserver les espaces), à effectuer certaines opérations sur le code XML, puis à enregistrer le code XML avec mise en retrait. Lorsque vous sérialisez le code XML avec mise en forme, seuls les espaces significatifs dans l'arborescence XML sont conservés. Il s'agit du comportement par défaut pour LINQ to XML.
Un autre scénario courant consiste à lire et à modifier du code XML qui a déjà été intentionnellement mis en retrait. Vous ne souhaiterez peut-être modifier cette mise en retrait en aucune manière. Pour ce faire, dans LINQ to XML, vous devez conserver les espaces lorsque vous chargez ou analysez le code XML et que vous désactivez la mise en forme lors de la sérialisation du code XML.
Cette rubrique décrit le comportement des espaces blancs des méthodes qui remplissent les arborescences XML. Pour plus d'informations sur le contrôle des espaces blancs lorsque vous sérialisez des arborescences XML, consultez Conservation des espaces blancs lors de la sérialisation.
Comportement des méthodes qui remplissent des arborescences XML
Les méthodes suivantes dans les classes XElement et XDocument remplissent une arborescence XML. Vous pouvez remplir une arborescence XML à partir d'un fichier, d'un objet TextReader, d'un objet XmlReader ou d'une chaîne :
Si la méthode ne prend pas l'objet LoadOptions comme argument, elle ne conservera pas les espaces non significatifs.
Dans la plupart des cas, si la méthode prend l'objet LoadOptions comme argument, vous pouvez, si vous le souhaitez, conserver les espaces non significatifs en tant que nœuds de texte dans l'arborescence XML. Toutefois, si la méthode charge le code XML à partir d'un objet XmlReader, l'objet XmlReader détermine si les espaces seront conservés. La définition de PreserveWhitespace n'aura aucun effet.
Avec ces méthodes, si les espaces sont conservés, des espaces non significatifs sont insérés dans l'arborescence XML en tant que nœuds XText. Si les espaces ne sont pas conservés, aucun nœud de texte n'est inséré.
Vous pouvez créer une arborescence XML à l'aide d'un objet XmlWriter. Les nœuds écrits dans l'objet XmlWriter sont remplis dans l'arborescence. Toutefois, lorsque vous générez une arborescence XML à l'aide de cette méthode, tous les nœuds sont conservés, qu'ils soient constitués d'espaces ou non et que ces espaces soient significatifs ou non.