我正在尝试使用JS中的DOM解析器解析一个简单的xml文档,但解析器无法加载该文件。我正在使用热门网站中的示例,我认为这样可行。
我的所有文件都存储在我的本地编译器上(不使用Web服务器...使用file:///而不是http://。)
我的代码是
<html>
<head>
</head>
<body>
<script>
<script type="text/javascript">
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // IE 5/6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","chinese.xml",false);
xhttp.send();
xmlDoc=xhttp.responseXML;
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{
document.write(x[i].nodeName);
}
</script>
</body>
</html>
我的hmtl和xml文件都位于同一个文件夹中。我无法理解为什么这不起作用
xml文件是
<!DOCTYPE menu SYSTEM "chinese.dtd">
<menu>
<dish>
<name>Chicken Sweetcorn Soup</name>
<price>1.60</price>
</dish>
<dish>
<name>Spring Roll</name>
<price>1.50</price>
</dish>
<dish>
<name>Special Satay</name>
<ingredients>King Prawn, Chicken, Beef with Vegetables</ingredients>
<price>4.50</price>
</dish>
<dish>
<name>Barbecued Spare Ribs</name>
<price>3.99</price>
</dish>
<dish>
<name>Sweet and Sour Pork</name>
<style>Cantonese</style>
<price>4.49</price>
</dish>
</menu>
答案 0 :(得分:2)
由于安全原因,大多数浏览器(除了Firefox,据我所知)不支持使用AJAX加载存储在您计算机上的本地XML文件(即使用Web服务器未提供的文件)。因此,如果您在Chrome中本地(使用file:///
)测试了您的脚本,则无法使用。
只需使用Firefox测试您的脚本或将其上传到服务器(我建议使用XAMPP)。