1

我正在尝试使用 JS 中的 DOM 解析器解析一个简单的 xml 文档,但解析器无法加载该文件。我正在使用来自流行网站的示例,我认为这会起作用。

我所有的文件都存储在我的本地计算机上(不使用网络服务器......使用 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>
4

1 回答 1

2

由于安全原因,大多数浏览器(据我所知,Firefox 除外)不支持使用 AJAX 加载存储在您计算机上的本地 XML 文件(即不使用 Web 服务器提供的文件)。因此,如果您file:///在 Chrome 中本地测试脚本(使用 ),它将无法正常工作。

只需使用 Firefox 测试您的脚本或将其上传到服务器(我建议使用XAMPP)。

于 2012-10-21T15:01:54.397 回答