Hilo iniciado por David Rodriguez el 15 de noviembre de 2017
-
AutorEntradas
-
noviembre 15, 2017 a las 4:47 pm #14747
buen día…. consulta
tengo el sigte código para leer xml
/********
XMLdoc = XmlDocument::newFile(@_fileName);
XMLdoc.load(XMLdoc.toString());
countItemTags = xmldoc.getElementsByTagName(‘Detalle’).length();
for (i = 0 ; i < countItemTags; i++)
{
tipo = xmldoc.getElementsByTagName(‘Tipo’).item(i).text();
Seq = xmldoc.getElementsByTagName(‘Seq’).item(i).text();
Despacho= xmldoc.getElementsByTagName(‘Despacho’).item(i).text();
Fch = xmldoc.getElementsByTagName(‘Fch’).item(i).text();
}
********/este código funciona bien hasta el momento que en la estructura del documento no trae alguna de las etiquetas de las que hago mención e imprime un error Objeto no inicializado, me podrían ayudar a identificar dentro el For la estructura del archivo que si no llega la etiqueta Despacho no la lea y que mi variable quede con un valor nulo.
gracias de antemano
noviembre 16, 2017 a las 8:47 pm #14748Hola David,
Una solucion rapida podria ser la utilizacion del bloque try – catch, mencionas que te sucede en la asignacion de la variable Despacho, podrias realizar lo siguiente:
try
{
Despacho= xmldoc.getElementsByTagName(‘Despacho’).item(i).text();
}
catch (Exception::Error) { Despacho = ''; }noviembre 16, 2017 a las 9:19 pm #14749muchas gracias, aunque el error persiste apesar de ya haber realizado esta validacion.
noviembre 17, 2017 a las 12:46 pm #14750Que raro, deberia funcionar. La otra opcion que se me ocurre es, dentro del bucle for pasas el contenido de la linea del xml que lees a una variable tipo texto, luego a esta variable le haces un strscan() y buscas “Despacho”, si encuentra lees el valor para la variable despacho, caso contrario no busca el valor.
noviembre 17, 2017 a las 2:32 pm #14751Gracias, no la habia considerado voy a probarla,
noviembre 17, 2017 a las 3:48 pm #14752Perfecto, comentame como te fue con la prueba!
-
AutorEntradas
- Debes estar registrado para responder a este debate.
