Saltar al contenido

xml.LoadData: los datos en el nivel raíz no son válidos. Línea 1, posición 1

El paso a paso o código que verás en este post es la resolución más eficiente y efectiva que hallamos a esta inquietud o dilema.

Solución:

El carácter oculto es probablemente BOM. La explicación del problema y la solución se pueden encontrar aquí, créditos a James Schubert, basados ​​en una respuesta de James Brankin que se encuentra aquí.

Aunque la respuesta anterior elimina el carácter oculto, también elimina toda la primera línea. La versión más precisa sería:

string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble());
if (xml.StartsWith(_byteOrderMarkUtf8))

    xml = xml.Remove(0, _byteOrderMarkUtf8.Length);

Encontré este problema al obtener un archivo XSLT de un blob de Azure y cargarlo en un objeto XslCompiledTransform. En mi máquina, el archivo se veía bien, pero después de cargarlo como un blob y recuperarlo, se agregó el carácter BOM.

Utilizar Load() en su lugar, resolverá el problema. Ver más

El problema aquí era que myString tenía esa línea de encabezado. O había algún carácter oculto al comienzo de la primera línea o la línea misma estaba causando el error. Corté la primera línea así:

xml.LoadXml(myString.Substring(myString.IndexOf(Environment.NewLine)));

Esto resolvió mi problema.

Te invitamos a añadir valor a nuestro contenido informacional tributando tu experiencia en las crónicas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *