XmlDocument xmldoc = new XmlDocument();
xmldoc.XmlResolver = null;
xmldoc.Load("URL");
XmlWriter xmlWrite = XmlWriter.Create(@Server.MapPath("Test.xml"));
xmldoc.Save(xmlWrite);
xmlWrite.Close();
Above is the code I am using to read an XML file. The XML I am loading contains entities like nbsp;
and because of that, the code is throwing an XMLException:
Reference to undeclared entity 'nbsp'
There are two ways to handle this, but for both you need to make changes to the input file.
1) Change your
to  
in you input files. It is always better to use Unicode and avoid readable entities in XML documents. Use plain Unicode characters or their numerical form.
2) If you still need/want to use
You can declare a custom doctype in the file that will do the conversion for you:
<!DOCTYPE doctypeName [ <!ENTITY nbsp " "> ]>
This problem is coming because
isn't one of XMLs predefined entities.
I had this same problem today, and I was able to solve it by changing the HTML entity name to an HTML entity number.
Per this helpful forum post, I was able to fix this error.
HTML entity names are not well supported in XML. This is why the "nonbreaking space"--"nbsp"--triggers this frustrating error.
The easiest way to fix this issue is to use HTML entity numbers, which means changing
to  
.
For a comprehensive listing of HTML entities with names and numbers, see:
W3 School's HTML Entity reference page.
Official W3C Page on Entity Sets.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With