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

    Response XML e nodi "vuoti"

    Salve a tutti.
    Sto provando a scrivere la mi prima piccola app in ajax e mi trovo davanti ad un ostacolo forse banale ma che non riesco a risolvere se non con un arteficio che non mi piace molto.
    Immagino che la soluzione sia semplicissima ma proprio non ne vengo fuori.

    Ispirandomi ad un esempio trovato in rete ho costruito una request e la ho inviata in get al server il quale mi risponde con un feed xml. All'interno del mio script io poi ciclo tra i vari nodi figlio del XMLresponse e vado a compilarmi una tabellina fatta con dei div, tipo così:

    document.getElementById('nome').innerHTML = http.responseXML.getElementsByTagName("nome")[0].childNodes[0].nodeValue;

    e fin qui tutto ok.
    Il problema si presenta quando il Node "nome" non contiene alcun valore (<nome></nome>) poiché in questo caso lo script cessa di funzionare
    l'unico modo che ho trovato è quello di piazzare degli & nbsp; all'interno dei nodi vuoti così che il browser mi visualizza uno spazio vuoto, ma questo non è molto "pulito" e a volte ovviamente mi sballa la visualizzazione.
    Non c'è un modo per testare se il nodo "nome" è "pieno" prima di cercare di passarne il contenuto al div e inchiodare tutto?
    Grazie in anticipo per l'aiuto

    NeT

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    valuta prima se abbia figli o meno
    codice:
    if(http.responseXML.getElementsByTagName("nome")[0].hasChildNodes()){
      ...procedi...
    }
    ciao

  3. #3
    Grazie, xinod! funziona a meraviglia!
    Solo un'altra domanda...
    se per esempio

    http.responseXML.getElementsByTagName("nome")[0]

    non esistesse (quindi non il child node ma il padre fosse mancante) ancora una volta mi troverei bloccato...
    posso testare anche l'esistenza di questo specifico "padre"? (ossia se il nodo "nome" esiste nel n elemento dell'albero xml?)
    Grazie ancora e ciao
    NeT

  4. #4
    Fai un controllo del genere:

    Codice PHP:
    var response http.responseXML.documentElement;
    var 
    nameListresponse.getElementsByTagName('nome');
    if(
    nameList.length 0){
       
    //do something

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Ok così funziona Grazie!

    Saluti
    NeT

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.