Bonjour à tous,

J'ai un problème, je ne comprend pas du tout comment fonctionne c'est deux objet. Dans mon petit exemple j'envoi une requète a mon serveur et il me renvoit les donné dans un flux comme suis:

Exemple avec les JSP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
int provinceId = new Integer(req.getParameter("state")).intValue();
resp.setHeader("Content-type",req.getContentType());
resp.setCharacterEncoding(req.getCharacterEncoding()); 	
String xmlFile = "<?xml version='1.0' standalone='yes' ?>"+
                        "\n<listVille>"+
                        "\n\t<ville>\n\t\t<num>0</num>\n\t\t<nom>Aucune sélection</nom>\n\t</ville>";
Connection connectBD = DriverManager.getConnection(this.urlBD);
ResultSet rs = connectBD.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery("select * from Ville where province="+provinceId);
while (rs.next()) {
  xmlFile += "\n\t<ville>\n\t\t<num>"+rs.getInt("id")+"</num>\n\t\t<nom>"+rs.getString("nom")+"</nom>\n\t</ville>";
}
xmlFile += "\n</listVille>";
rs.close();
connectBD.close();
resp.getWriter().println(xmlFile);
Ensuite, quand je veux lire les données du côté client, sa marche pas. Quand je fais XMLHttpRequest.responseXML ça fonction je reçois un objet, et j'ai plus vérifier que c'étais un XMLDocument en exécutant le meme script sur firefox en faisant un alert(XMLHttpRequest.responseXML).

Rendu à cette étape je n'arrive pas a accèder à l'élément principal(root node), sous internet explorer ça me dit "null" et sur firefox le alert n'apparait meme pas sur XMLHttpRequest.responseXML.getElementByTagName("listVille"). En gros voilà mon script côté client.

Création de la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
http_request = false;
if (window.XMLHttpRequest) http_request = new XMLHttpRequest();
else {
  if (window.ActiveXObject) {
     try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); }
     catch (e) { 
        try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); }
        catch (e1) {}
     }
  }
}
if (http_request) {
  http_request.onreadystatechange = update;
  http_request.open("GET", url+"?state="+state_Id, true);
  http_request.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");
  http_request.send(null);
}

Réception des données:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function update() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
       var xmlDoc = http_request.responseXML;
       alert("XMLDoc: "+xmlDoc);
       var root_node = xmlDoc.getElementsByTagName("listVille")
       alert("RootNode: "+root_node);  //Marche po... :'(
       //Je sais plus koi faire
    }
    else alert("Error no."+http_request.status+"\nAn error occur while receiving data");
  }
}
Avec un responseText j'ai pas de problème, mais responseXML chu fourrer, merci d'avance de m'aider.