1

JS で DOM パーサーを使用して単純な xml ドキュメントを解析しようとしていますが、パーサーはファイルを読み込めません。人気のあるウェブサイトの例を使用していますが、これでうまくいくと思いました。

すべてのファイルはローカル コンピューターに保存されます (Web サーバーを使用せず、 http:// ではなく file:/// を使用)。

私のコードは

<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 を除く) は、セキュリティ上の理由により、コンピューターに保存されているローカル XML ファイル (つまり、Web サーバーを使用して提供されていないファイル) の AJAX による読み込みをサポートしていません。そのため、スクリプトfile:///を Chrome で (を使用して) ローカルでテストした場合、機能しません。

Firefox を使用してスクリプトをテストするか、サーバーにアップロードします ( XAMPPの使用をお勧めします)。

于 2012-10-21T15:01:54.397 に答える