Référence à l'entité non déclarée 'nbsp' lors de la lecture de xml à partir de L'URL dans c#?
XmlDocument xmldoc = new XmlDocument();
xmldoc.XmlResolver = null;
xmldoc.Load("URL");
XmlWriter xmlWrite = XmlWriter.Create(@Server.MapPath("Test.xml"));
xmldoc.Save(xmlWrite);
xmlWrite.Close();
ci-dessus est le code que j'utilise pour lire un fichier XML. Le XML que je charge contient des entités comme nbsp;
et pour cette raison, le code lance une XMLException:
référence à l'entité non déclarée 'nbsp'
2 réponses
il y a deux façons de gérer cela, mais pour les deux vous devez apporter des modifications au fichier d'entrée.
1) Changez votre
 
en vous fichiers d'entrée. Il est toujours préférable d'utiliser Unicode et d'éviter les entités lisibles dans les documents XML. Utilisez des caractères Unicode simples ou leur forme numérique.
2) Si vous avez encore besoin/envie d'utiliser
Vous pouvez déclarer un doctype personnalisé dans le fichier qui fera la conversion pour vous:
<!DOCTYPE doctypeName [
<!ENTITY nbsp " ">
]>
ce le problème est venue parce que
n'est pas une des entités prédéfinies de XMLs.
j'ai eu ce même problème aujourd'hui, et j'ai pu le résoudre en changer le nom de L'entité HTML en un numéro D'entité HTML.
Par ce utile de post sur le forum, j'ai pu corriger cette erreur.
les noms D'entités HTML ne sont pas bien pris en charge dans XML. C'est pourquoi le "espace insécable"--"nbsp"--déclenche cette frustrant d'erreur.
la façon la plus simple de corriger ce problème est d'utiliser les numéros D'entité HTML, ce qui signifie changer
pour  
.
pour une liste complète des entités HTML avec noms et numéros, voir: