Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Caricare un file Xml con Javascript

    Devo caricare un file Xml residente nella cartella del server... è possibile da Javascript?
    O per forza il file deve essere sul client per essere letto?

    Non lo legge perchè questa istruzione mi ritorna 0: alert(days.length), mentre dovrebbe stamparmi 4, cioè il numero di tag "day" nel file xml.



    codice:
    function IEGo(xml,giorno, mese, anno)
       {
       if (xml.readyState == 4)
          return leggiXml(xml, giorno, mese, anno)
       }		
    		
    		
    function mozLeggi(xml,giorno, mese, anno)
    {
    return leggiXml(xml,giorno, mese, anno)
    
    }
    
    
    function leggiXml(xmldoc,giorno,mese,anno)
       {
    	  
    	  var ispres
    	  ispres=false
    	  
    	   
    	   var days=new Array()
    	  
    	  days= xmldoc.getElementsByTagName("day")
    	  
    		
    	for(var j=0; j<days.length ; j++ )
    	{
    		
    		 
    		
    	  if (days[j].childNodes[0].nodeValue==giorno && days[j].childNodes[1].nodeValue==mese && days[j].childNodes[2].nodeValue==anno)
    	  {
    	   ispres=true
    	  }
    	}
    	  
    	  
       	
       
       return ispres
       }
    
    
    
    
    function Confronta(giorno, mese, anno){
    	
    	
    
    var xml = null
    
    if (document.implementation && document.implementation.createDocument)
       {
    	   
       xml = document.implementation.createDocument("","",null)
      xml.load("daysxml.xml")
      xml.onload=mozLeggi(xml,giorno, mese, anno)
       var days=new Array()
    	  
    	  days= xml.getElementsByTagName("day")
    	   
    		alert(days.length)
       
       }
       else if (window.ActiveXObject)
          {
          xml = new ActiveXObject("Microsoft.XMLDOM")
    	  xml.load("daysxml.xml")
          xml.onreadystatechange = IEGo(xml,giorno, mese, anno)
          
          }
    	  
    	}


    il file xml che devo leggere è fatto così:


    codice:
    <events>
          <newscalendar>
               <day>
              <g>
    		15
              </g>
              <m>
    		6
              </m>
              <a>
    		2006
              </a>
            </day>
            <day>
              <g>
    		16
              </g>
              <m>
    		6
              </m>
              <a>
    		2006
              </a>
            </day>
            <day>
              <g>
    		17
              </g>
              <m>
    		6
              </m>
              <a>
    		2006
              </a>
            </day>
            <day>
              <g>
    		18
              </g>
              <m>
    		6
              </m>
              <a>
    		2006
              </a>
            </day>
          </newscalendar>
        </events>

  2. #2
    Ciao, scusami ma non so aiutarti, colgo l'occasione però per chiederti se puoi farmi un esempio di come si caricano i file xml su IExlporer e Firefox. Grazie!

  3. #3
    Potrei sbagliarmi (sono anch'io un neofito di XML Ajax e dom) ma non fai scrivere in nessun luogo nel tuo documento il file caricato. Quindi quando cerchi il tag days giustamente non lo trova.
    Potresti metterlo in un div con display:hidden;
    Ciao

  4. #4
    Alla fine sono riuscito a fare quello che dovevo fare in modo completo su Explorer, ma su Mozilla no...
    Praticamente dovevo fare caricare un calendario in Javascript in modo che leggendo un elenco di giorni da un file XML, mi evidenziasse al suo interno tutti i giorni contenuti in tale file.
    Con Internet Explorer funziona alla perfezione!

    Avrei voluto farlo funzionare su Mozilla, perchè il sito deve essere completamente cross-browser...ma sapete com è... in azienda pretendono che tutto funzioni dappertutto!
    Peccato che un grande standard come XML non si è affermato in modo uguale per i browser...
    Di solito è Explorer a farmi incavolare... ma questa volta è stato Mozilla...

    Colgo l'occasione per riscrivere il codice per caricare in modo cross-browser un file XML...

    codice:
    if (document.implementation && document.implementation.createDocument)
       {
    	/*questo è l'istanziamento dell'oggetto xmlDocument per Mozilla*/   
      xml= document.implementation.createDocument("","",null)
          xml.load("inc/daysxml.asp")
      xml.onload=carica_XML
    /*carica_XML è il nome di una funzione, quindi il puntatore*/
      
       }
       else if (window.ActiveXObject)
          {
    /*questo è l'istanziamento dell'oggetto xmlDocument per Internet Explorer*/ 
          var xml = new ActiveXObject("Microsoft.XMLDOM") /*componente ActiveX già inglobato in IE con la versione 6*/
     
    	  xml.async=false
    	 
          xml.load("inc/daysxml.asp")
    	  
    	  return leggiXml(xml)
    		
          }

    Il mio problema sta nel passaggio dei parametri per il caso di Mozilla... in cui come vedete nel codice sopra, bisogna associare un puntatore a funzione all'evento onload dell'oggetto.
    Non riesco quindi a passargli i parametri e non sono neanche riuscito usando le variabili globali...
    Se c'è qualcuno che mi può aiutare...ve ne sarei molto grato... Grazie

    p.s. spero che presto XML possa essere usato in egual modo da qualsiasi browser, con utilizzo di una interfaccia comune... come ad esempio le ODBC per i database...

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.