Поделиться через


Средство синтаксического анализа XML: недопустимый символ найден в текстовом содержимом

Эта статья помогает устранить ошибки при анализе языка расширяемой разметки (XML), содержащего специальные символы с помощью средства синтаксического анализа MICROSOFT XML (MSXML).

Исходная версия продукта: платформа .NET Framework
Исходный номер базы знаний: 238833

Симптом

При анализе XML, содержащего специальные символы с помощью средства синтаксического анализа Microsoft XML (MSXML), средство синтаксического анализа может сообщить следующее сообщение об ошибке в строке и позиции первого специального символа:

Недопустимый символ найден в текстовом содержимом.

Причина

XML-документ не помечается правильной схемой кодировки символов.

Резолюция

  • Укажите правильную схему кодирования в инструкции обработки XML.
  • Повторно закодируйте XML-данные как правильные UTF-8.

Состояние

Это поведение является намеренным.

Дополнительные сведения

Специальный символ относится к любому символу за пределами стандартного стандартного кода для обмена информацией (ASCII) диапазона 0x00 - 0x7F, например латинские символы с акцентами, umlauts или другие диакритические. Схема кодирования по умолчанию для XML-документов — UTF-8, которая кодирует символы ASCII со значением 0x80 или выше, чем другие стандартные схемы кодирования.

Чаще всего эта проблема возникает при работе с данными, использующими простую схему кодирования iso-8859-1. В этом случае самое быстрое решение обычно является первым, перечисленным выше в разделе "Решение ". Например, используйте следующее xml-объявление:

<?xml version="1.0" encoding="iso-8859-1" ?>
<rootelement>
    ...XML data...
</rootelement>

Вместо этого можно закодировать каждый из этих символов с помощью ссылки на числовые сущности. Например, можно использовать специальный символ <test>&#x00E1;</test> версию).