xml file:
<?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>
js code is as follows:
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;
}
}
}
}
}
html code is as follows:
<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>
I learned an example in w3school and wanted to change it to enter the user name, then search for the node containing the user name in the xml file, and finally display the password.
Google Chrome always reports an error: Cannot read property 'documentElement' of null.
And Firefox reported an error: xmlhttp.responseXML is null.
I haven’t been able to figure it out for a long time, so I came here to ask for help.
The error reported in your code should be this sentence:
As mentioned above, the request was not successful at this time, so xmlhttp.responseXML is null, so an error will be reported. Try writing this code in the if statement that determines the ajax status.
Thank you very much, it has been solved. (Send flowers manually