Leer fichero XML

Hola a todos.

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:

<?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>

Y la función de Javascript (¡cuidado!, están las 3 distintas opciones que he estado probando de como cargar el fichero XML):

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=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'); 
    }
};

Muchísimas gracias de antemano por toda la ayuda que podais aportarme.

Añade tu respuesta

Haz clic para o