从 javascript 读取本地 xml

Posted

技术标签:

【中文标题】从 javascript 读取本地 xml【英文标题】:reading local xml from javascript 【发布时间】:2016-11-12 07:24:42 【问题描述】:

我想读取本地存储的 xml,并且我想通过 javascript 读取/写入。 我的代码如下

function saveBaseValue()

  var xmlhttp;
  var XMLname="file:///C:/Users/setting.xml"
  if (window.XMLHttpRequest)
    
    xmlhttp=new window.XMLHttpRequest();
    xmlhttp.open("GET",XMLname,false);
    alert(xmlhttp.responseXML);
   


在这种情况下,xmlhttp.responseXML 为空。

【问题讨论】:

使用XMLHttpRequest .onload 事件处理程序读取异步请求的结果。 xmlhttp.onload = function() alert(xmlhttp.responseXML); xmlhttprequest for local files的可能重复 guest271314 : 如果我想要一个同步请求怎么办? 这是一个安全问题,如果任何网站都可以读取您的 cookie 文件,那么您可以使用 @pracheese 你想达到什么目的? 【参考方案1】:

您可以使用以下代码实现您的目标。

<!DOCTYPE html>
<html>
<head>
<script>
function saveBaseValue()

  var xmlhttp;
  var XMLname="file:///C:/Users/setting.xml"  
  if (window.XMLHttpRequest)
  
   xmlhttp=new window.XMLHttpRequest();
   xmlhttp.onreadystatechange = function() 
   
      if (xmlhttp.readyState == 4) 
          
         alert(xmlhttp.responseXML);
      
   ;
   xmlhttp.open("GET",XMLname,false);
   xmlhttp.send();
  
 
 saveBaseValue();
 </script>
 </head>
 <body>    
   <h1>Test</h1>
 </body>
</html>

默认情况下,您的浏览器不允许您访问此本地文件,因为这是出于安全考虑,但是如果您想访问它,请关闭所有 chrome 实例,转到命令提示符,将目录更改为您的 chrome.exe 所在的目录存在并在命令下方运行。

.\chrome.exe --allow-file-access-from-files --disable-web-security

【讨论】:

注意,使用最新的 Chrome,我收到以下警告:Web security may only be disabled if '--user-data-dir' is also specified with a non-default value.

以上是关于从 javascript 读取本地 xml的主要内容,如果未能解决你的问题,请参考以下文章

用javascript如何读取本地TXT文件?

使用 selenium 从 html 5 本地存储中读取

通过浏览器使用 javascript/jQuery 读取和写入 ID3 标签到本地文件?

使用 javascript 从 localhost 读取 json 文件

用javascript读取本地文本文件[重复]

从 Javascript 页面保存 JSON 数据