Que dois-je faire dans mon code C # ou dans mon document XML pour que l’parsingur XDocument lise les espaces littéraux de Value
s of XElement
s?
Contexte
J’ai un document XML, dont une partie ressemble à ceci:
XELement
les valeurs de chaque XELement
à un dictionnaire de données à l’aide d’une requête LINQ; .ForEach
partie .ForEach
ressemble à ceci:
.ForEach(x => SchemaDictionary.Add( LogicHelper.GetEnumValue(x.Name.ToSsortingng()), x.Value));
Pour tester si les valeurs d’espaces ont été préservées, j’imprime une ligne des numéros de caractères de chaque élément de valeur du dictionnaire de données. Dans le code suivant, x
représente un KeyValuePair
et l’ Aggregate
KeyValuePair
simplement une chaîne des valeurs entières de caractères:
x.Value.ToCharArray() .Aggregate("",(word,c) => word + ((int)c).ToSsortingng() + " " ) ));
Je m’attendais à voir 10 13
pour la valeur et
32 32 32 32
pour la valeur . Cependant, rien n’a été imprimé pour chaque valeur ( remarque: d’autres valeurs échappées dans le XML, telles que
<
ont correctement imprimé leurs numéros de caractères ).
Que dois-je faire dans mon code C # ou dans mon document XML pour que mon parsingur syntaxique ajoute la chaîne complète d’espaces au dictionnaire de données?
Essayez de charger votre XDocument avec le LoadOptions.PreserveWhitespace
Essayez de charger votre document de cette façon.
XmlDocument doc = new XmlDocument(); doc.PreserveWhitespace = true; doc.Load("book.xml");
ou simplement modifier votre entrée XML en: