Подтвердить что ты не робот

Ссылка на необъявленный объект "nbsp" при чтении xml из URL-адреса в С#?

    XmlDocument xmldoc = new XmlDocument();
    xmldoc.XmlResolver = null;

    xmldoc.Load("URL");
    XmlWriter xmlWrite = XmlWriter.Create(@Server.MapPath("Test.xml"));
    xmldoc.Save(xmlWrite);
    xmlWrite.Close();

Выше приведен код, который я использую для чтения XML файла. Загружаемый XML файл содержит такие объекты, как nbsp;, и из-за этого код бросает XMLException:

Ссылка на необъявленный объект 'nbsp'

4b9b3361

Ответ 1

Есть два способа справиться с этим, но для обоих вам нужно внести изменения во входной файл.

1) Измените   на   во входных файлах. Всегда лучше использовать Unicode и избегать считываемых объектов в XML-документах. Используйте простые символы Unicode или их числовую форму.

2) Если вам все еще нужно/нужно использовать   Вы можете объявить пользовательский тип doctype в файле, который сделает для вас преобразование:

<!DOCTYPE doctypeName [
   <!ENTITY nbsp "&#160;">
]> 

Эта проблема возникает, потому что &nbsp; не является одним из предопределенных сущностей XML.

Ответ 2

У меня была такая же проблема сегодня, и я смог решить ее с помощью смены имени объекта HTML на номер сущности HTML.

Per этот полезный пост форума, я смог исправить эту ошибку.

Имена сущностей HTML в XML не поддерживаются. Вот почему "неразрушающее пространство" - "nbsp" - вызывает эту разочаровывающую ошибку.

Самый простой способ исправить эту проблему - использовать номера объектов HTML, что означает изменение &nbsp; до &#160;.

Полный список объектов HTML с именами и номерами см. в разделе

Страница ссылок HTML HTML HTML.

Официальная страница W3C на наборах объектов.