在没有Node-without JQuery的情况下从javascript访问XML

时间:2017-07-21 06:20:57

标签: javascript jquery node.js xml

我正在尝试开发对游戏的修改。事情是游戏已经编译,开发人员不喜欢反编译游戏(当时正在进行)。由于编译可能,每次我尝试加载JQuery或Node.js无论什么版本我得到错误“一个键已经存在于字典中”。没有Node.js或JQuery.js,一切都很好。

我想要实现的是为游戏添加一些功能,遗憾的是这些功能无法通过游戏的API函数调用本身获得。我希望能够访问数据内部.xml文件用于项目/武器/设备/引擎项目的内部游戏。我已经尝试了几乎所有我在Stackexchange上找到的东西,我搜索的是Node和JQuery。对不起,如果你们认为这是一个重复的问题。因为它不是。我不能使用Node.js也不能使用JQuery。我还能尝试什么?请有人帮帮我。

我对编程只有一年的c#和Javascript经验有点新。对不起,如果这对你们感觉真的不合适。

1 个答案:

答案 0 :(得分:0)

你需要的是ajax。现代浏览器提供了非常实用的XMLHttpRequest,因此您甚至不再需要框架。

要知道的一件重要事情:如果由于同源策略,您很可能无法使用ajax下载xml文件(如果它位于远程服务器上)。您需要可靠的访问权限。最方便的解决方案是在本地服务器上拥有该文件的副本,例如WAMP,XAMPP等。

我不打算再编写另一个ajax教程。 Insteal我只会为您提供一个有效的最小HTML页面,并指向XMLHttpRequest documentation

<button>Request</button>
<script>
  'use strict';

  document.querySelector('button').addEventListener('click',
    function () {
      let req = new XMLHttpRequest();

      req.onload = function () {
        if (this.responseXML) {
          console.log(this.responseXML);
        }
        else {
          console.log(this.responseText);
        }
      };

      req.open('GET', xmlURL); // xmlURL should be the location of the .xml file
      req.send();
    });
</script>

当您单击该按钮时,脚本将请求,然后在浏览器控制台中显示服务器的响应(如果有)。要打开控制台,请按F12并选择控制台选项卡。

请注意,只有在服务器发送的xml格式正确的情况下,才会填充responseXML属性。 JS中的Xml解析有点挑剔,因此您可能希望依赖responseText作为后备。