jueves, 27 de mayo de 2010

Leer XML con Jquery

Tenemos el siguiente XML:


<NewDataSet>
<Table1>
<idUsuario>123456</idUsuario>
<nombre>Angelica Maria</nombre>
<apellidoPaterno>Roca</apellidoPaterno>
<apellidoMaterno>Fong</apellidoMaterno>
</Table1>
<Table1>
<idUsuario>1738043</idUsuario>
<nombre>Angélica María</nombre>
<apellidoPaterno>Roca</apellidoPaterno>
<apellidoMaterno>Fong</apellidoMaterno>
</Table1>
<Table1>
<idUsuario>2984560</idUsuario>
<nombre>Jorge Rodolfo</nombre>
<apellidoPaterno>Roca</apellidoPaterno>
<apellidoMaterno>Mercado</apellidoMaterno>
</Table1>
<Table1>
<idUsuario>3394347</idUsuario>
<nombre>Paola Lenny</nombre>
<apellidoPaterno>Márquez</apellidoPaterno>
<apellidoMaterno>Pinto</apellidoMaterno>
</Table1>
<Table1>
<idUsuario>3830628</idUsuario>
<nombre>SHIRLEY DANNY</nombre>
<apellidoPaterno>TOTOLA</apellidoPaterno>
<apellidoMaterno>MORÓN</apellidoMaterno>
</Table1>
</NewDataSet>


Para leer un XML (aplicado al xml del ejemplo):
// tenemos que tener referenciados los archivos de Jquery "jquery.js"
// xml (variable de tipo XML)
// trabaja como un 'foreach' ...

$(xml).find('Table1').each(function(){
var atributo1 = $(this).attr('id'); //para leer los atributos del tag, si los tubiera
var idusuario = $(this).find('idUsuario').text();
var nombre = $(this).find('nombre').text();
var apMaterno = $(this).find('apellidoMaterno').text()
var apPaterno = $(this).find('apellidoPaterno').text()
});


A continuacion un ejemplo :
en un archivo Javascript, por ejemplo la siguiente funcion:

function TraerDatosUsuarios() {

// Estamos realizando una llamada ajax de JQuery
// url: la ruta del servidor, data: le mandamos los parametros necesarios
// success: la funcion que se va a ejecutar con los datos xml que retorne la llamada
// en la funcion se esta leyendo el xml "datos" con JQuery
$.ajax({
type: "POST",
datetype: "xml",
url: "../Utilidades/comunicador.ashx",
data: "consulta=obtenerpersonas",
success: function(datos) {
if ($(datos).find('NewDataSet').length > 0) {
var j = 0;
$(datos).find('Table1').each(function() {
var DatosUnicos = new Object();
DatosUnicos.legajo = $(this).find('idUsuario').text();
DatosUnicos.nombre = $(this).find('nombre').text() + ' ' + $(this).find('apellidoPaterno').text() + ' ' + $(this).find('apellidoMaterno').text();

});
}
}
});

}


-------------------------------------------------
Para preguntarse si un elemento es null:
if ($(this).find('FK_PadreValor').length == 0)

1 comentario: