Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problemas al validar contenido de mi xml

Estas en el tema de Problemas al validar contenido de mi xml en el foro de Programación General en Foros del Web. <a> <b> <nombre>rodrigo</nombre> <fax>123456</fax> </b> <b> <nombre>carolina</nombre> <fax/> </b> </a> quiero mostrar eso en una tabla no lo hace ya que <fax/> no tiene datos ...
  #1 (permalink)  
Antiguo 26/07/2006, 09:45
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
Sonrisa Problemas al validar contenido de mi xml

<a>
<b>
<nombre>rodrigo</nombre>
<fax>123456</fax>
</b>
<b>
<nombre>carolina</nombre>
<fax/>
</b>
</a>

quiero mostrar eso en una tabla
no lo hace ya que <fax/> no tiene datos
como puedo validar que cuando venga vacio me asigno otro valor y asi pueda mostrar la tabla
  #2 (permalink)  
Antiguo 27/07/2006, 00:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Nada claro, necesitas ecplicarte mejor...

1. ¿Mediante qué mostrarás dicha "tabla"?, ¿Cómo la generas?
2. ¿De dónde sale el XML que muestras?, ¿qué te impide "generar" --sí así lo haces-- <fax></fax>?
3. ¿Validar?, mediante un DTD... ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 03/08/2006, 10:18
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
jam1138 esta es la informacion

el xml es::::
Código HTML:
<?xml version="1.0"?>
<INICIO>
 <ENCABEZADO>
 <ID_SESION>123456789</ID_SESION>
 <RUT_DV_CON>600000035</RUT_DV_CON>
 <CONV_CON>1234112345</CONV_CON>
 <SERVICIO>Servibanva</SERVICIO>
 <RUT_DV_CLIENTE>136524528</RUT_DV_CLIENTE>
 <PAG_RET>ap</PAG_RET>
 <TIPO_CONF>nomq</TIPO_CONF>
 <PAG_REND>sda</PAG_REND>
 <BANCO>012</BANCO>
 <CANT_MPAGO>3</CANT_MPAGO>
 <TOTAL>9000</TOTAL>
 </ENCABEZADO>
 <MULTIPAGO>
 <GLOSA_MPAGO>NominaPa1</GLOSA_MPAGO>
 <ID_PAGO>12345abcDE</ID_PAGO>
 <PAGO> 
 <RUT_DV_EMP>600803000</RUT_DV_EMP>
 <NUM_CONV>0123456789</NUM_CONV>
[COLOR="red"] <FEC_TRX/>
 <HOE_TRX/>[/COLOR]
 <GLOSA>pago uno</GLOSA> 
 <COD_PAGO>3000</COD_PAGO>
 </PAGO>
 <RESULTADO>
 <RESULT_MPAGO>11111111</RESULT_MPAGO>
 <GLOSA_ERR/> 
 <TRX_MPAGO>11121112</TRX_MPAGO>
 <FEC_MPAGO>20060621</FEC_MPAGO>
 <HORA_MPAGO>040030</HORA_MPAGO>
 <FEC_CNTBL_MPAGO>20060330</FEC_CNTBL_MPAGO> 
 </RESULTADO>
 <PAGO>
 <RUT_DV_EMP>600803002</RUT_DV_EMP>
 <NUM_CONV>9876543210</NUM_CONV>
 <FEC_TRX/>
 <HOE_TRX/>
 <GLOSA>pago dos</GLOSA>
 <COD_PAGO>3000</COD_PAGO>
 </PAGO>
 <RESULTADO>
 <RESULT_MPAGO>22222222</RESULT_MPAGO>
 [COLOR="red"]<GLOSA_ERR/>[/COLOR]
 <TRX_MPAGO>22231222</TRX_MPAGO>
 <FEC_MPAGO>20060622</FEC_MPAGO>
 <HORA_MPAGO>013000</HORA_MPAGO>
 <FEC_CNTBL_MPAGO>20060330</FEC_CNTBL_MPAGO>
 </RESULTADO>
 <PAGO>
 <RUT_DV_EMP>600803003</RUT_DV_EMP>
 <NUM_CONV>1236549870</NUM_CONV>
[COLOR="red"] <FEC_TRX/>
 <HOE_TRX/>[/COLOR]
 <GLOSA>pago tres</GLOSA> 
 <COD_PAGO>3000</COD_PAGO>
 </PAGO>
 <RESULTADO>
  <RESULT_MPAGO>ok</RESULT_MPAGO>
 [COLOR="red"] <GLOSA_ERR/>[/COLOR]
  <TRX_MPAGO>74025653</TRX_MPAGO>
  <FEC_MPAGO>20060623</FEC_MPAGO>
  <HORA_MPAGO>050603</HORA_MPAGO>
  <FEC_CNTBL_MPAGO>20060330</FEC_CNTBL_MPAGO>
 </RESULTADO> 
 </MULTIPAGO>
</INICIO> 
aca envio el codigo, lo que esta en rojo me produce problema, ya que en el archivo xml algunas veces viene con dato y otras no, esto produce que no se dibuje la tabla

Cita:
function leerDatos(){
//if (oXML.readyState == 4) {
var xml = oXML.responseXML.documentElement;
document.write('<table><tr>');
for (i = 0; i < xml.getElementsByTagName('ENCABEZADO').length; i++){

var item = xml.getElementsByTagName('ENCABEZADO')[i];
var id = item.getElementsByTagName('ID_SESION')[0].firstChild.data;
document.write('<tr><td>' + id + '</td></tr>');
var rut = item.getElementsByTagName('RUT_DV_CON')[0].firstChild.data;
document.write('<tr><td>' + rut + '</td></tr>');
var serv = item.getElementsByTagName('SERVICIO')[0].firstChild.data;
document.write('<tr><td>' + serv + '</td></tr>');
var con = item.getElementsByTagName('CONV_CON')[0].firstChild.data;
document.write('<tr><td>' + con + '</td></tr>');
var rutc = item.getElementsByTagName('RUT_DV_CLIENTE')[0].firstChild.data;
document.write('<tr><td>' + rutc + '</td></tr>');
var pagr = item.getElementsByTagName('PAG_RET')[0].firstChild.data;
document.write('<tr><td>' + pagr + '</td></tr>');
var tipo = item.getElementsByTagName('TIPO_CONF')[0].firstChild.data;
document.write('<tr><td>' + tipo + '</td></tr>');
var pagn = item.getElementsByTagName('PAG_REND')[0].firstChild.data;
document.write('<tr><td>' + pagn + '</td></tr>');
var banco = item.getElementsByTagName('BANCO')[0].firstChild.data;
document.write('<tr><td>' + banco + '</td></tr>');
var cantp = item.getElementsByTagName('CANT_MPAGO')[0].firstChild.data;
document.write('<tr><td>' + cantp + '</td></tr>');
var total = item.getElementsByTagName('TOTAL')[0].firstChild.data;
document.write('<tr><td>' + total + '</td></tr>');
}
document.write('</table>');
document.write('<table border="1">');
var cantidad = xml.getElementsByTagName('PAGO').length;
var i = 1;
alert(cantidad);
for (i = 0; i < xml.getElementsByTagName('PAGO').length; i++){
var item = xml.getElementsByTagName('PAGO')[i];
var ruta = item.getElementsByTagName('RUT_DV_EMP')[0].firstChild.data;
document.write('<tr><td>' + ruta + '</td>');
var num = item.getElementsByTagName('NUM_CONV')[0].firstChild.data;
document.write('<td>' + num + '</td>');
/* var fectrx = item.getElementsByTagName('FEC_TRX')[0].firstChild.data;
document.write('<td>' + fectrx + '</td>');
var hora = item.getElementsByTagName('HOE_TRX')[0].firstChild.data;
document.write('<td>' + hora + '</td>');*/

var glosa = item.getElementsByTagName('GLOSA')[0].firstChild.data;
document.write('<td>' + glosa + '</td>');
var codpa = item.getElementsByTagName('COD_PAGO')[0].firstChild.data;
document.write('<td>' + codpa + '</td></tr>');
}
document.write('</table>');

Última edición por jam1138; 07/08/2006 a las 17:18
  #4 (permalink)  
Antiguo 09/08/2006, 23:42
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 20 años, 1 mes
Puntos: 7
Pero es que, por ejemplo, <FEC_TRX/> es un elemento vacio, no puede tener datos, máximo los de algún atributo... ¿por qué lo presentas como un elemento vacio? ¿Cuando tiene datos, como lo escribes?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:05.