Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema lettura XML

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    6

    Problema lettura XML

    Ho fatto un'estensione per Firefox, e ora per automatizzarla vorrei scaricare un file XML..
    Solo che non ho mai lavorato con gli XML e non capisco il motivo di questo problema:

    codice:
    	
    	var XMLDoc = document.implementation.createDocument("", "", null); 
    	XMLReq = new XMLHttpRequest();
    	XMLReq.open('GET', 'http://www.f1project.org/xml/piloti.php', true);
    	alert("1");
    	XMLReq.onreadystatechange = function (aEvt) {
    	  if (XMLReq.readyState == 4) {
    		 if(XMLReq.status == 200)
    		  dump(XMLReq.responseText);
    		 else
    		  dump("Error loading page\n");
    	  }
    	}
    	alert("2");
    	XMLReq.overrideMimeType('text/xml');
    	XMLReq.send(null);
    	XMLDoc = XMLReq.responseXML;
    	alert("3");
    	var driverIndex = 1;
    	var driversNode = XMLDoc.getElementsByTagName('Drivers');
    	alert("4");
    	var driver = driversNode.firstChild;
    	alert("ok");
    Per verificare il funzionamento ho questo codice, solo che non mi mostra mai l'alert 4 e si ferma sempre al 3.
    Qualcuno ha qualche idea?



    PS: Il file XML è strutturato così (il sottoalbero che mi interessa è <Drivers>):
    codice:
    <F1Project>
    <File>piloti.php</File>
    <Fetchdate>2006-10-05 14:44:06</Fetchdate>
    <IdTeam>641</IdTeam>
    <Training>
    	<TrainingFirstSkill>traiettoria</TrainingFirstSkill>
    	<TrainingSecondSkill>riflessi</TrainingSecondSkill>
    </Training>
    <TalentScout>
    	<TalentScoutLevel>4</TalentScoutLevel>
    	<TalentScoutFunding>1000</TalentScoutFunding>
    </TalentScout>
    <Drivers>
    	<Driver>
    		<DriverId>10074</DriverId>
    		<DriverName>Ricardo</DriverName>
    		<DriverSurname>Sousa</DriverSurname>
    		etc...

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    19
    Non mostrandoti l'alert 4 significa che si verifica un javascript error durante l'esecuzione dell'istruzione var driversNode = XMLDoc.getElementsByTagName('Drivers');

    Lo puoi postare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    6
    Si che si verificasse un errore su driversNode l'avevo capito, solo che non capisco il perchè!

    Lo puoi postare?
    Cosa?
    Se intendi l'XML c'è già nel primo post:
    codice:
    <Drivers>
    	<Driver Index="1">
    		<DriverId>10074</DriverId>
    		<DriverName>Ricardo</DriverName>
    		<DriverSurname>Sousa</DriverSurname>
    		etc...
    E proprio non capico dove sia l'errore...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    19
    La descrizione dell'errore... non l'XML... lo vedo che c'è l'XML!!! Mi interessava vedere l'errore che ti viene fornito quando esegui quell'istruzione!

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    hai provato a sostituire
    var driversNode = XMLDoc.getElementsByTagName('Drivers');
    con
    var driversNode = XMLDoc.getElementsByTagName('Drivers')[0];

    in alternativa posta l'errore che restituisce la javascript console di firefox
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    6
    Originariamente inviato da miche
    La descrizione dell'errore... non l'XML... lo vedo che c'è l'XML!!! Mi interessava vedere l'errore che ti viene fornito quando esegui quell'istruzione!

    E' questo il problema, nella console Javascript non restituisce nessun errore :master:


    Ad ogni modo ho provato a smanettare un po' e facendo così quella parte mi funzionava:
    codice:
    XMLReq.open("GET", "piloti.php.xml", true);
    XMLReq.onreadystatechange = function () {
    	if (XMLReq.readyState == 4){
    		XMLDoc = XMLReq.responseXML;
    		alert("ok");
    	}
    }
    XMLReq.overrideMimeType("text/xml");
    XMLReq.send(null);
    var driversNode = XMLDoc.getElementsByTagName("Drivers")[0];
    alert("1");
    var stats = new Array(22);
    alert("2")
    for (i=0; i<22; i++){
    	alert("a");	
    	stats[i]=driversNode.childNodes[i];
    	alert("b");
    }

    Ora funziona il .getElementsByTagName(), ma non mi mostra l'alert b.
    Questa volta invece un errore la console me lo da, ovvero "Errore: driversNode has no properties".
    Provando a vedere il nodeName di driversNode mi da "undefined"...
    Sembra quasi che con il getElements non trovi niente e restituisca null.
    Mi sfugge il motivo però

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.