Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    estrarre dati da xml, ajax

    Seguendo esempi proposti in rete, mi sono letteralmente impantanato.

    Recupero il file xml col comando:
    var t = objHTTP.responseText;

    mettendo t dentro un TEXTAREA vedo il testo che arriva dal server:
    codice:
    <?xml version="1.0" ?>
    <user>
    <name>Stefano</name>
    <city>Roma</city>
    </user>
    se recupero l'xml con:
    var t = objHTTP.responseXML.getElementsByTagName("name").l ength;

    ottengo sempre 0, e:

    var t = objHTTP.responseXML.getElementsByTagName("name")[0];

    ottengo null o indefinito


    Magari è una stupidagine, ma non riesco a venirne fuori
    Potreste darmi una mano?

    Pietro

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    l'oggetto che ottieni è un riferimento al nodo radice
    quindi:

    codice:
    var root = objHTTP.responseXML
    var nome = root.childNodes[0].childNodes[0].nodeValue;
    var city = root.childNodes[0].childNodes[1].nodeValue;
    Se non funziona, in realtà dovresti fare dei cicli for annidati in cui controlli se il nodetype del nodo corrente è uguale a 1:

    cioè:

    codice:
    var root = objHTTP.responseXML;
    
    for (var i=0; i<root.childNodes.length; i++) {
       if (root.childNodes[i] == 1) {
          for (var j=0; j<root.childNodes[i].childNodes.length; j++) {
             if (root.childNodes[i].childNodes[j].nodeType == 1) {
                alert(root.childNodes[i].childNodes[j].nodeValue);
             }
          }
       }
    }
    Attenzione infine che se racchiudi i tuoi dati su una sezione CDATA devi fare un terzo ciclo for annidato.

    Ciao
    Vuoi aiutare la riforestazione responsabile?

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

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio molto. Lo metterò in pratica domani in ufficio.

    Pietro

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.