Veréis, estoy intentando leer un fichero XML desde HTML con Javascript y me surgen problemas a la hora de cargar el fichero.
Tengo un fichero XML que contiene personas almacenando de estas sus nombres y apellidos. La intención es con una función en Javascript que recibe un nombre y un apellido, recorrer cada una de las personas almacenadas en dicho fichero y que me muestre (en este momento con un simple alert me sirve) si la persona se encuentra ya almacenada o no.
Nunca antes había tocado XML y con Javascript había hecho muy, muy poco, asique si pudieseis echarme una manita me sería de gran ayuda ya que me urge mucho terminar esto.
Os dejo el código XML:
Código:
Y la función de Javascript (¡cuidado!, están las 4 distintas opciones que he estado probando de como cargar el fichero XML):<?xml version="1.0" encoding="utf-8"?> <PERSONAS> <persona> <nombre> Andrea </nombre> <apellido> Martinez </apellido> </persona> <persona> <nombre> Juan </nombre> <apellido> Fernandez </apellido> </persona> <PERSONAS>
Código:
Muchísimas gracias de antemano por toda la ayuda que podais aportarme. function ComprobarPersonaAlmacenada(nombre,apellido) { //---------------- //Opción 1: xmlDoc = CreateMSXMLDocumentObject(); xmlDoc.loadXML("personasAlmacenadas.xml"); //---------------- //Opción 2: xmlDoc = loadXMLDoc("personasAlmacenadas.xml"); //---------------- //Opción 3: var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.load("personasAlmacenadas.xml"); //---------------- //Opción 4: var xmlDoc=null; if (window.ActiveXObject){ xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); }else if (document.implementation.createDocument){ xmlDoc=document.implementation.createDocument(""," ",null); }else { alert('Your browser cannot handle this script'); } if (xmlDoc!=null){ xmlDoc.async=false; xmlDoc.load("personasAlmacenadas.xml"); //------------- numUsers = xmlDoc.getElementsByTagName("persona").length; for ( i = 0; i < numUser ; i++ ) { if (xmlDoc.getElementsByTagName("nombre").childNodes[0] == nombre && xmlDoc.getElementsByTagName("apellido").childNodes[0] == apellido ) { alert('La persona está almacenada'); } } alert('La persona no está almacenada'); } };