read - write xml c#
XmlDocument.Load Vs XmlDocument.LoadXml (5)
Acabo de encontrar un problema con XmlDocument.LoadXml
.
La aplicación estaba fallando, dando el siguiente error:
"Los datos en el nivel raíz no son válidos. Línea 1, posición 1"
Después de inspeccionar el XML y no encontrar nada malo en él, busqué un poco en Google y encontré una sugerencia para usar XmlDocument.Load
lugar de XmlDocument.LoadXml
.
Lo he probado y funciona perfectamente.
Mi pregunta es: ¿Cuál es la diferencia entre los 2 métodos y qué podría haber hecho que uno funcione y el otro falle?
¿Estabas tratando de usar XmlDocument.LoadXml
y XmlDocument.LoadXml
el nombre de un archivo? No lo hace, asume que la cadena que se pasa es el XML. Así que podrías usar:
doc.LoadXml("<root><child /><root>");
o
doc.Load("myfile.xml");
Si eso no ayuda, ¿podría mostrar su código de falla y funcionamiento? Hay diferentes maneras en las que podría haber cambiado de usar LoadXml
a Load
...
La aplicación se bloqueó con el siguiente error: "Los datos en el nivel de raíz no son válidos. Línea 1, posición 1" Sospecho que los datos xml no tienen un nivel de raíz: por ejemplo:
<area id="1">
<candidate id="0">dataata</candidate>
</area>
<area id="2">
<candidate id="0">dataataa</candidate>
</area>
necesita tener al menos un nivel de raíz en la parte superior de los niveles inferiores. por ejemplo:
<areas>
<area id="1">
<candidate id="0">dataata</candidate>
</area>
<area id="2">
<candidate id="0">dataataa</candidate>
</area>
</areas>
así que, por favor, ponga a una madre en la cima de su nivel, conviértala en abuela de todos los niños
Load () carga desde una fuente determinada, mientras que LoadXml () carga directamente desde una cadena
Suponiendo que utilice XmlDocument.Load
y XmlDocument.LoadXml
de la manera correcta , este problema puede ser causado por la marca de orden de bytes .
Esta otra pregunta podría ser útil.
XmlDocument.Load se utiliza para cargar XML desde una secuencia, TextReader, ruta / URL o XmlReader. XmlDocument.LoadXml se utiliza para cargar el XML contenido dentro de una cadena.
Son formas fundamentalmente diferentes de cargar XML, dependiendo de dónde se almacena el XML. Así que suena como si estuvieras usando el método incorrecto para dónde está tu XML.