我正在尝试编写此代码,因此当我单击XML按钮时,它将显示我的XML文档。我无法让按钮做任何事情,我假设功能缺少某些东西。任何帮助,将不胜感激。提前谢谢。
功能
<script language = "JavaScript">
xmlOpen = function(){
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
xmlhttp.open("GET","gameXML.xml",false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
}
</script>
按钮HTML
<p>
<label>List of users:</label>
<input type="button" value="XML" id="users" onclick="xmlOpen()">
</p>
答案 0 :(得分:1)
document.getElementById('users').innerHTML = xmlDoc;
如果这不起作用,请将responseXML更改为responseText。
如果不起作用,请尝试替换
xmlhttp.open("GET","gameXML.xml",false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
与
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("users").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gameXML.xml",true);
xmlhttp.send();
答案 1 :(得分:1)
您是从Web服务器提供这些文件吗?或者您只是从文件系统打开HTML页面?如果您使用Chrome并尝试从文件系统中打开HTML文件,则在单击&#34; XML&#34;时会出现错误(请参阅控制台)。按钮。
要解决此问题,您可以从Web服务器(甚至在本地计算机上)提供文件,也可以尝试在Firefox中打开HTML页面。
在显示XML文件的内容方面,请尝试查看以下问题:How do I loop through XML Nodes in JavaScript?
<强>更新强>
我使用下面的代码测试成功了。在Firefox中打开我的桌面中的HTML文件。
<强> gameXML.xml 强>
<?xml version="1.0" encoding="UTF-8" ?>
<users>
<user>Bob</user>
<user>James</user>
<user>Karen</user>
<user>Tom</user>
<user>Linda</user>
</users>
<强>的test.html 强>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Test Page</title>
</head>
<body>
<p>
<label>List of users:</label>
<input type="button" value="XML" id="users" onclick="xmlOpen()">
<table id="tbody"></table>
</p>
<script language = "JavaScript">
xmlOpen = function(){
var users, i, len;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
xmlhttp.open("GET", "gameXML.xml", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
users = xmlDoc.getElementsByTagName("user");
len = users.length;
for (i = 0; i < len; i++) {
var user = users[i].firstChild.nodeValue;
var tr = document.createElement("tr");
var td = document.createElement("td");
var textNode = document.createTextNode(user);
td.appendChild(textNode);
tr.appendChild(td);
document.getElementById("tbody").appendChild(tr);
}
}
</script>
</body>
</html>
结果截图: