modificar - ¿Referencia a la entidad no declarada ''nbsp'' al leer un xml de la URL en c#?
leer xml c# xmlreader (2)
XmlDocument xmldoc = new XmlDocument();
xmldoc.XmlResolver = null;
xmldoc.Load("URL");
XmlWriter xmlWrite = XmlWriter.Create(@Server.MapPath("Test.xml"));
xmldoc.Save(xmlWrite);
xmlWrite.Close();
Arriba está el código que estoy usando para leer un archivo XML. El XML que estoy cargando contiene entidades como nbsp;
y debido a eso, el código está lanzando una XMLException:
Referencia a la entidad no declarada ''nbsp''
Hay dos formas de manejar esto, pero para ambos es necesario realizar cambios en el archivo de entrada.
1) Cambie su
a  
en los archivos de entrada. Siempre es mejor usar Unicode y evitar entidades legibles en documentos XML. Utilice caracteres Unicode sin formato o su forma numérica.
2) Si aún necesita / quiere usar
Puede declarar un doctype personalizado en el archivo que hará la conversión por usted:
<!DOCTYPE doctypeName [
<!ENTITY nbsp " ">
]>
Este problema viene porque
no es una de las entidades predefinidas de XML.
Tuve este mismo problema hoy, y pude resolverlo cambiando el nombre de la entidad HTML a un número de entidad HTML .
Por esta útil publicación en el foro , pude corregir este error.
Los nombres de entidad HTML no están bien soportados en XML. Esta es la razón por la que el "espacio que no rompe" ("nbsp") desencadena este error frustrante.
La forma más fácil de solucionar este problema es usar números de entidad HTML, lo que significa cambiar
a  
.
Para obtener una lista completa de las entidades HTML con nombres y números, consulte: