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

    [AJAX] parsing stringa XML in DOM

    Salve a tutti, sto realizzando uno script AJAX per l'autocompletamento di una textbox.
    Ottengo i dati come stringa XML da una jsp chiamata Autocomplete.jsp di cui vi posto il codice:

    <%@page import="java.util.Vector"%>
    <%@page import="java.util.StringTokenizer"%><%@ page language="java" contentType="text/xml; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
    out.println("<?xml version=\"1.0\"?>");
    out.println("<root>");
    out.println("<cliente nome=\"Mario\" cognome=\"Bianchi\"></cliente>");
    out.println("<cliente nome=\"Carlo\" cognome=\"Rossi\"></cliente>");
    out.println("</root>");
    %>

    Nel lato client la stringa arriva correttamente...però lo script da problemi quando devo fare il parsing della stringa in un oggetto DOM..
    Per fare questo uso il seguente codice:

    var objDOMParser= new DOMParser();
    var xmlDoc=objDOMParser.parseFromString(strXML,"text/xml");
    var clienti=xmlDoc.getElementsByTabName("cliente");

    Ho notato,mettendo dei messaggi di alert, che l'esecuzione va avanti senza problemi fino al parseFromString mentre se metto un alert dopo il getElementsByTagName non viene visualizzata..
    Non riesco a capire come mai...sapreste aiutarmi?
    p.s. per lo sviluppo e test uso eclipse ganymede su un mac 10.5.6 su cui è installato safari come browser.

    grazie anticipatamente..

  2. #2
    mi autocorreggo...avevo sbagliato a scrivere il metodo getElementByTabName (Tag invece di Tab)..
    Però adesso ho un altro problema..
    Dopo ho un ciclo che mi deve aggiungere i "clienti" della stringa xml (nel mio caso solo due, ossia Mario Bianchi e Carlo Rossi) in un lista <ul>..ma il ciclo non parte neanche perchè la lunghezza del vettore clienti (quello ottenuto con il metodo getElementsByTagName("clienti")) è 0 (invece dovrebbe essere 2!)
    Ecco il codice completo:

    try {
    var parser= new DOMParser();
    var xmlDoc=parser.parseFromString(strXML,"text/xml");
    var clienti=xmlDoc.getElementsByTagName("cliente");
    }catch(e) {
    alert(e.message);
    return;
    }
    alert(clienti.length); //qui mi da risultato 0!!
    for (var i=0; i<clienti.length; i++) {
    var cliente=clienti[i]; //prendo la persona attuale
    var nome=cliente.getAttribute("nome"); //recupero nome dal cliente
    var cognome=cliente.getAttribute("cognome"); //recupero cognome dal cliente
    var oLi=document.createElement("li");
    var text=document.createTextNode(nome+" "+cognome);
    oLi.appendChild(text);
    oResult.appendChild(oLi);
    }

    Non capisco cosa ci possa essere di sbagliato...help me!!!

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.