fichier xml :
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<acc>
<user>zhangsan</user>
<psd>123456</psd>
</acc>
<acc>
<user>lisi</user>
<psd>654321</psd>
</acc>
</urlset>
Le code js est le suivant :
function showHint(str) {
"user static";
var xmlhttp = new XMLHttpRequest();
var psd_text = document.getElementById("psd_text");
if (str.length == 0) {
psd_text.innerHTML = "";
return;
}
xmlhttp.open("GET", "acc.xml", true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
var acc_node = xmlhttp.responseXML.documentElement.getElementsByTagName("user");
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
for(var i = 0; i < acc_node.length; i++){
if(acc_node[i].firstChild.nodeValue.indexOf(str)){
psd_text.innerHTML = acc_node[i].lastChild.nodeValue;
}
}
}
}
}
Le code html est le suivant :
<body>
<h3>请在下面的输入框中输入用户名:</h3>
<form>
<label>用户名:</label><input type="text" id="user_input" value="" onkeyup="showHint(this.value)" />
</form>
<p>密码:<span id="psd_text"></span></p>
</body>
J'ai appris un exemple dans w3school et je voulais le changer pour saisir le nom d'utilisateur, puis rechercher le nœud contenant le nom d'utilisateur dans le fichier XML, et enfin afficher le mot de passe.
Google Chrome signale toujours une erreur : Impossible de lire la propriété 'documentElement' de null.
Et Firefox a signalé une erreur : xmlhttp.responseXML est nul.
Je n'ai pas réussi à comprendre depuis longtemps, alors je suis venu ici pour demander de l'aide.
L'erreur signalée dans votre code doit être cette phrase :
Comme mentionné ci-dessus, la requête n'aboutit pas pour le moment, donc xmlhttp.responseXML est nul, donc une erreur sera signalée. Essayez d'écrire ce code dans l'instruction if qui détermine le statut ajax.
Merci beaucoup, le problème est résolu. (Envoyer des fleurs manuellement