Analizador XML: se encontró un carácter no válido en el contenido de texto

Este artículo le ayuda a resolver errores al analizar lenguaje de marcado extensible (XML) que contiene caracteres especiales mediante el analizador XML de Microsoft (MSXML).

Versión del producto original:   .NET Framework
Número KB original:   238833

Síntoma

Al analizar XML que contiene caracteres especiales mediante el analizador XML de Microsoft (MSXML), el analizador puede notificar el siguiente mensaje de error en la línea y posición del primer carácter especial:

Se encontró un carácter no válido en el contenido de texto.

Causa

El documento XML no está marcado con el esquema de codificación de caracteres adecuado.

Solución

  • Especifique el esquema de codificación adecuado en la instrucción de procesamiento XML.
  • Vuelva a codificar los datos XML como UTF-8 adecuado.

Estado

Este comportamiento es una característica del diseño de la aplicación.

Más información

El carácter especial hace referencia a cualquier carácter que no sea el intervalo estándar del conjunto de caracteres de código estándar estadounidense para intercambio de información (ASCII) de 0x00- 0x7F, como caracteres latinos con acentos, umlauts u otros diacríticos. El esquema de codificación predeterminado para documentos XML es UTF-8, que codifica caracteres ASCII con un valor de 0x80 o superior a otros esquemas de codificación estándar.

Más a menudo, verá este problema si está trabajando con datos que usan el esquema de codificación iso-8859-1 simple. En este caso, la solución más rápida suele ser la primera que aparece antes en la sección Resolución. Por ejemplo, use la siguiente declaración XML:

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

En su lugar, puede codificar cada uno de esos caracteres mediante la referencia de entidad numérica. Por ejemplo, puedes tomar el carácter especial á, usar <test> &#225;</test> (versión decimal) o <test>&#x00E1;</test> (versión hexadecimal).