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 el 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 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.

Resolución

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

Estado

Este comportamiento es por diseño.

Información adicional

El carácter especial hace referencia a cualquier carácter fuera del rango estándar del Código Estándar Americano para el Intercambio de Información (ASCII) de 0x00 - 0x7F, como caracteres latinos con acentos, diéresis 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 a otros esquemas de codificación estándar.

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 enumerada 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).