Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PC上存储的文件中提取XML数据,并使用javascript填充HTML表格?_Javascript_Html_Xml_Dom_Html Table - Fatal编程技术网

如何从PC上存储的文件中提取XML数据,并使用javascript填充HTML表格?

如何从PC上存储的文件中提取XML数据,并使用javascript填充HTML表格?,javascript,html,xml,dom,html-table,Javascript,Html,Xml,Dom,Html Table,请参见下面我的XML和HTML: 我只想使用XML文件中的数据生成一个HTML表。 (此XML文件位于我的C目录中,但与HTML文件位于同一文件夹中。) (C:/Users/Admin/Documents/GameStats/main.html-->是主html文件)。 (C:/Users/Admin/Documents/GameStats/game.xml-->为xml文件) 我将感谢任何帮助。我不介意JAVASCRIPT、AJAX和JQUERY。 如果你能告诉我我的错误,我将不胜感激 <

请参见下面我的XML和HTML: 我只想使用XML文件中的数据生成一个HTML表。 (此XML文件位于我的C目录中,但与HTML文件位于同一文件夹中。) (C:/Users/Admin/Documents/GameStats/main.html-->是主html文件)。 (C:/Users/Admin/Documents/GameStats/game.xml-->为xml文件)

我将感谢任何帮助。我不介意JAVASCRIPT、AJAX和JQUERY。 如果你能告诉我我的错误,我将不胜感激

<?xml version="1.0" encoding="UTF-8"?>
    <GAME>
        <COUNTRY>
            <NAME>China</NAME>
            <PLAYERS>80,000</PLAYERS>
            <KILLS>35,060</KILLS>
        </COUNTRY>
        <COUNTRY>
            <NAME>Pakistan</NAME>
            <PLAYERS>234</PLAYERS>
            <KILLS>340</KILLS>
        </COUNTRY>
        <COUNTRY>
            <NAME>Indonesia</NAME>
            <PLAYERS>867</PLAYERS>
            <KILLS>546</KILLS>
        </COUNTRY>
    </GAME>

中国
80,000
35,060
巴基斯坦
234
340
印度尼西亚
867
546
这是HTML文档:

<!DOCTYPE html>
<html>
<style>
table,th,td {
  border : 1px solid black;
  border-collapse: collapse;
}
th,td {
  padding: 5px;
}
</style>
<body>

<button type="button" onclick="loadXMLDoc()">Get Game Stats</button>
<br><br>
<table id="demo"></table>

<script>
function loadXMLDoc() {
//document.body.style.backgroundColor = "red";
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myFunction(this);
    }
  };
  xmlhttp.open("GET", "/game.xml", true);
  xmlhttp.send();
}
function myFunction(xml) {
  var i;
  var xmlDoc = xml.responseXML;
  var table="<tr><th>Name</th><th>Players</th><th>Kills></th></tr>";
  var x = xmlDoc.getElementsByTagName("COUNTRY");

  for (i = 0; i <x.length; i++) { 
    table += "<tr><td>" +
    x[i].getElementsByTagName("NAME")[0].childNodes[0].nodeValue +
    "</td><td>" +
    x[i].getElementsByTagName("PLAYERS")[0].childNodes[0].nodeValue +
    "</td><td>"  +
    x[i].getElementsByTagName("KILLS")[0].childNodes[0].nodeValue +
    "</td></tr>";
  }

  document.getElementById("demo").innerHTML = table;
}
</script>

</body>
</html>

表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
th,td{
填充物:5px;
}
获取游戏统计数据


函数loadXMLDoc(){ //document.body.style.backgroundColor=“红色”; var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ 我的职能(本); } }; open(“GET”,“/game.xml”,true); xmlhttp.send(); } 函数myFunction(xml){ var i; var xmlDoc=xml.responseXML; var table=“NamePlayersKills>”; var x=xmlDoc.getElementsByTagName(“国家”);
对于(i=0;i所以,有两个问题:你需要一个本地测试服务器来尝试这样的东西,除非你想不断地将文件上传到远程服务器来测试它们。有很多方法可以设置本地测试服务器(Python、PHP有一个内置的测试服务器、虚拟机等等)但有了xampp,您将在大约5分钟内启动并运行。它是免费的,您可以找到有关设置它的视频或教程,尽管很简单

其次是加载XML,我使用以下方法:

function loadXML() {
    var urlVar = ('myXML.xml'); // where your xml file lives
    var succVar = xmlLoaded; // what to do after it's loaded
    $.ajax({
        type: "GET",
        url: urlVar,
        dataType: "xml",
        success: succVar
    });
}
function xmlLoaded(data) {
    var loadedXML = data;
    console.log('xml', $(loadedXML).find('game').html()); // display the content of <game> in your console window
}
函数loadXML(){
var urlVar=('myXML.xml');//xml文件所在的位置
var-succVar=xmloaded;//加载后要做什么
$.ajax({
键入:“获取”,
url:urlVar,
数据类型:“xml”,
成功:succVar
});
}
函数xmlLoaded(数据){
var loadedXML=数据;
console.log('xml',$(loadedXML).find('game').html());//在控制台窗口中显示的内容
}

应该在Web服务器上运行才能工作。在windows上,您可能可以使用
文件://
协议,但如果我的记忆良好,我相信浏览器可能需要启用标志才能允许文件协议。可能更容易构建一个小的nodejs Web服务器来支持它。您遇到了什么问题?我看不出有什么问题en我单击按钮。没有生成任何内容。我也尝试过在服务器上运行它,同样的问题也会出现。@mrkn0007当你说“我也尝试过在服务器上运行它”时,你是什么意思?你能更新你的问题以包括你尝试过的内容吗?