XMLHttpRequest.responseXML et XMLDocument
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:
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:
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:
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.