Leer Xml

16/05/2007 - 22:34 por Lu´pita | Informe spam
Hola!

Realizé un aplicación que recibe un xml desde un webservice, pero el xml me
lo envian como bytes y de ahí yo lo "transformo" al xml, el cual lo muestro
en una caja de texto, pero no he conseguido leerlo, es decir, tomar esos
datos y poder guardarlos en la base de datos.

El código que estuve utilizando es el siguiente:

//Aquí lo paso a la caja de texto
xml.LoadXml(Encoding.ASCII.GetString(thisByteSc));
txtScores.Text=xml.OuterXml;

//Aquí intento leerlo
XmlTextReader lector = new XmlTextReader(xml.InnerXml);

while (lector.Read())
{
if(lector.NodeType == XmlNodeType.Text)
{
ListBox1.Items.Add(lector.Value);
}
}

Pero me genera el siguiente error en esta línea:
XmlTextReader lector = new XmlTextReader(xml.InnerXml);

en donde el error dice lo siguiente:
"La ruta de acceso es demasiado larga después de completarse. Asegúrese de
que la ruta de acceso es inferior a 260 caracteres"

Obviamente no puedo hacer más pequeño el xml, alguien podría ayudarme.

Gracias y Saludos...
 

Leer las respuestas

#1 Alberto Poblacion
17/05/2007 - 08:10 | Informe spam
"Lu´pita" wrote in message
news:
[...]
Pero me genera el siguiente error en esta línea:
XmlTextReader lector = new XmlTextReader(xml.InnerXml);

en donde el error dice lo siguiente:
"La ruta de acceso es demasiado larga después de completarse. Asegúrese de
que la ruta de acceso es inferior a 260 caracteres"



El constructor del XmlTextReader tiene varias sobrecargas. Como le estás
pasando un String (xml.InerXml), utiliza la sobrecarga que recibe un string,
la cual espera que el string en cuestión sea el nombre de fichero que debe
leer. Como tu string no trae un nombre de fichero, te da un error.

En tu caso te interesa usar la sobrecarga que recibe un Stream, para
poder leer el Xml. El Stream lo puedes construir si quieres a partir de los
bytes que recibiste inicialmente, con lo cual te ahorras el paso que los
convierte a string:

MemoryStream stm = new MemoryStream(thisByteSc);
XmlTextReader lector = new XmlTextReader(stm);
...

Preguntas similares