Newsgroup: it.lavoro.professioni.webmaster
Titolo: [OT] Qualcuno è in grado di aiutarmi?

Il seguente codice mi permette di caricare delle schede in xml e
visualizzarle.
Con IE funzione, ma con Mozilla no. Come mai?
Grazie
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
<script type="text/javascript">
 function importxml(filevector,ns) {
 var ie = (typeof window.ActiveXObject!= 'undefined');
 var moz = (typeof document.implementation!= 'undefined') &&
   (typeof document.implementation.createDocument!= 'undefined');
 var xmlDoc = new Array(ns);
   if (moz) {
   for (i=0;i<ns;i++){
   xmlDoc[i] = document.implementation.createDocument("", "doc", null) ;
   xmlDoc[i].onload = readxml;
   xmlDoc[i].load(filevector[i]);
  }
   } else if (ie)
     {
    for (i=0;i<ns;i++){
   xmlDoc[i] = new ActiveXObject("Microsoft.xmlDOM");
   xmlDoc[i].async = false;
   while(xmlDoc[i].readyState!= 4) {};
   xmlDoc[i].load(filevector[i].toString());
   root[i]=xmlDoc[i].documentElement;
       }
     }
   }
 function printOneSubField(subFields){
  nSubFields = subFields.length;
  document.write("<br />");
  for(var i=0; i<nSubFields; i++){
   document.write("_____"+subFields[i].nodeName+": ");
   document.write(subFields[i].firstChild.nodeValue);
   document.write("<br />");
  }
  document.write("<br />");
 }
 function printTwoSubField(subFields){
  nSubFields = subFields.length;
  document.write("<br />");
  for(var i=0; i<nSubFields; i++){
   //document.write("_____"+subFields[i].nodeName+": ");
   //document.write("<br />"+subFields[i].firstChild.nodeName+" "); //'nome'
   document.write("______"+subFields[i].firstChild.firstChild.nodeValue+"
");
   //document.write(subFields[i].firstChild.nextSibling.nodeName+" ");
//'cognome'
   document.write(subFields[i].firstChild.nextSibling.firstChild.nodeValue);
   document.write("<br />");
  }
  document.write("<br />");
 }
 function statusScheda(status){
  switch (status){
   case "b":
   return "Buono";
   case "r":
   return "Da restaurare";
   case "m":
   return "Mediocre";
   case "p":
   return "Pessimo";
  }
 }
</script>
</head>
<body>
<script type="text/javascript">
    ns=1;
    var filevector = new Array(ns);
 filevector[0]= new String("test.xml");
    //filevector[1]= new String("6.xml");
    var root = new Array(ns);
 var cond;
 var campo;
 document.write("Test di caricamento XML ");
 importxml(filevector,ns);
 for(j=0;j<ns;j++){
     document.write("<hr />");
  document.write("<br />nome scheda "+filevector[j]);
  document.write("<br />identificativo scheda :
"+root[j].getAttribute("identificativo"));
     document.write("<hr />");
  campi = root[j].childNodes;
  nCampi = campi.length;
  for(i=0; i<nCampi; i++){
   campi[i].nodeName
   switch(campi[i].nodeName){
    case "fascicolo":
    document.write("FASCICOLO: ");
    printOneSubField(campi[i].childNodes);
    document.write("<br />");
    break;
    case "serie":
    document.write("SERIE: ");
    document.write(campi[i].firstChild.nodeValue);
    document.write("<br />");
    break;
    case "descrizione":
    document.write("DESCRIZIONE: ");
    document.write(campi[i].firstChild.nodeValue);
    document.write("<br />");
    break;
    case "data":
    document.write("DATA");
    printOneSubField(campi[i].childNodes);
    document.write("<br /><br />");
    break;
    case "stato":
    document.write("STATO: ");
    document.write(statusScheda(campi[i].getAttribute("valutazione")));
    document.write("<br />");
    break;
    case "nota_bibl":
    document.write("NOTA BIBLIOGRAFICA: ");
        document.write(campi[i].firstChild.nodeValue);
    document.write("<br />");
    break;
    case "persone":
    document.write("PERSONE: ");
    printTwoSubField(campi[i].childNodes);
    document.write("<br />");
    break;
    case "luoghi":
    document.write("LUOGHI: ");
    printOneSubField(campi[i].childNodes);
    document.write("<br />");
    break;
    case "enti":
    document.write("ENTI: ");
    printOneSubField(campi[i].childNodes);
    document.write("<br />");
    break;
    case "compilatore":
    document.write("COMPILATORE: ");
    printOneSubField(campi[i].childNodes);
    document.write("<br />");
    break;
    case "revisore":
    document.write("REVISORE: ");
    printOneSubField(campi[i].childNodes);
    document.write("<br />");
    break;
   }
  }
 }
</script>
</body>
</html>


Data la natura della questione, ti suggerisco di postare su:
it.comp.lang.javascript. Probabilmente il mancato funzionamento è dovuto a
delle incompatibilità. Il fatto che funzioni su IE dimostra che il codice è
corretto, il fatto che non funzioni su MOZILLA porta a dedurre che occorra
aggiungere ulteriori controlli finalizzati a rendere compatibile il codice
con quel specifico browser.
Cooper.
-- 
BlueWare Web Agency
   [web] 
http://www.blueware.it
   [icq] 146781935

 corretto ........
Rotfl ;-)

 ha scritto nel messaggio
news:nqXGc.5779$tj3.2...@news3.tin.it...

Per IE intendo :)


 ha scritto nel messaggio
news:nqXGc.5779$tj3.2...@news3.tin.it...

Cioe???

 ha scritto nel messaggio
news:X8YGc.40087$GQ3.1...@twister2.libero.it...

Normalmente IE è più permissivo rispetto ad altri browser nella scrittura ed
ecco il motivo per cui è tanto odiato.
Anche se, per certuni, è odiato solo perchè porta il nome "Microsoft" :) Da
qui il ROTFL di A-lessandro.
