Analizador XML: se encontró un carácter no válido en el contenido del 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 original del producto: .NET Framework
Número de 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 la 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

Carácter especial hace referencia a cualquier carácter fuera del intervalo estándar de juego de caracteres de Código estándar americano 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 de forma diferente que otros esquemas de codificación estándar.

Con frecuencia, 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, puede tomar el carácter especial á, usar <test> &#225;</test> (versión decimal) o <test>&#x00E1;</test> (versión hexadecimal).