Javascript 如何编写AJAX调用以获取XML文件?

Javascript 如何编写AJAX调用以获取XML文件?,javascript,ajax,xml,Javascript,Ajax,Xml,我需要写一个带有“获取航班信息”按钮的网页。当用户单击此按钮时,编写一个AJAX调用以获取您在问题1中编写的XML文件,将XML解析为Javascript对象,然后在web页面上完全按照 跟随: 这是到目前为止我的代码。我是个新手,所以请大家放松点 XML: 2011年10月2日 弗吉尼亚州1429 悉尼 凯恩斯 1855年35号登机门 维珍澳大利亚 HTML: <html> <style> table,th,td { border : 1px solid bl

我需要写一个带有“获取航班信息”按钮的网页。当用户单击此按钮时,编写一个AJAX调用以获取您在问题1中编写的XML文件,将XML解析为Javascript对象,然后在web页面上完全按照 跟随:

这是到目前为止我的代码。我是个新手,所以请大家放松点

XML:


2011年10月2日
弗吉尼亚州1429
悉尼
凯恩斯
1855年35号登机门
维珍澳大利亚
HTML:

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

<button type="button" onclick="loadDoc()">Get flight 
information</button>
<br><br>
<table id="demo"></table>

<script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myFunction(this);
    }
  };
  xhttp.open("GET", "Question1.xml", true);
  xhttp.send();
}
function myFunction(xml) {
  var i;
  var xmlDoc = xml.responseXML;
  var table="<tr><th>Depart</th><th>Arrive</th></tr>";
  var x = xmlDoc.getElementsByTagName("CD");
  for (i = 0; i <x.length; i++) {
    table += "<tr><td>" +
  x[i].getElementsByTagName("Depart")[0].childNodes[0].nodeValue +
    "</td><td>" +
  x[i].getElementsByTagName("Arrive")[0].childNodes[0].nodeValue +
    "</td><td>" +
  x[i].getElementsByTagName("Date")[0].childNodes[0].nodeValue +
    "</td></tr>";
  }
  document.getElementById("demo").innerHTML = table;
}
</script>

</body>
</html>

表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
th,td{
填充物:5px;
}
逃走
信息


函数loadDoc(){ var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ 我的职能(本); } }; open(“GET”,“Question1.xml”,true); xhttp.send(); } 函数myFunction(xml){ var i; var xmlDoc=xml.responseXML; var table=“离开到达”; var x=xmlDoc.getElementsByTagName(“CD”); 对于(i=0;i

表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
th,td{
填充物:5px;
}
逃走
信息


函数loadDoc(){ var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ 我的职能(本); } }; open(“GET”,“Question1.xml”,true); xhttp.send(); } 函数myFunction(xml){ var i; var xmlDoc=xml.responseXML; var表=`departarrival`; var x=xmlDoc.getElementsByTagName(“CD”); 对于(i=0;i

表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
th,td{
填充物:5px;
}
逃走
信息


函数loadDoc(){ var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ 我的职能(本); } }; open(“GET”,“Question1.xml”,true); xhttp.send(); } 函数myFunction(xml){ var i; var xmlDoc=xml.responseXML; var表=`departarrival`; var x=xmlDoc.getElementsByTagName(“CD”); 对于(i=0;i
$(函数(){
var数据='弗吉尼亚州1429年10月2日悉尼凯恩斯盖特35于1855年维珍澳大利亚'
//解析givnxml
var xmlDoc1=$.parseXML(数据);
变量$xml1=$(xmlDoc1);
//查找人员标签
var$flightInfo=$xml1.find(“flightInfo”);
$flightInfo.each(函数(){
变量日期=$(this).find('Date').text(),
Depart=$(this).find('Depart').text(),
arrival=$(this.find('arrival').text();
$(“#数据”)。追加(“
  • ”+日期+”-“+出发+”-“+到达+”
  • ); }); });
    
    
      $(函数(){
      var数据='弗吉尼亚州1429年10月2日悉尼凯恩斯盖特35于1855年维珍澳大利亚'
      //解析givnxml
      var xmlDoc1=$.parseXML(数据);
      变量$xml1=$(xmlDoc1);
      //查找人员标签
      var$flightInfo=$xml1.find(“flightInfo”);
      $flightInfo.each(函数(){
      变量日期=$(this).find('Date').text(),
      Depart=$(this).find('Depart').text(),
      arrival=$(this.find('arrival').text();
      $(“#数据”)。追加(“
    • ”+日期+”-“+出发+”-“+到达+”
    • ); }); });
      
      
        您不能以这种方式从文件系统加载文件,如果浏览器允许您这样做,则会非常不安全。您可能希望使用像nodeJS这样的web服务器?您不能以这种方式从文件系统加载文件,如果浏览器允许您这样做,则会非常不安全。您可能希望使用像nodeJS这样的web服务器?
        <html>
        <style>
        table,th,td {
          border : 1px solid black;
          border-collapse: collapse;
        }
        th,td {
          padding: 5px;
        }
        </style>
        <body>
        
        <button type="button" onclick="loadDoc()">Get flight 
        information</button>
        <br><br>
        <table id="demo"></table>
        
        <script>
        function loadDoc() {
          var xhttp = new XMLHttpRequest();
          xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
              myFunction(this);
            }
          };
          xhttp.open("GET", "Question1.xml", true);
          xhttp.send();
        }
        function myFunction(xml) {
          var i;
          var xmlDoc = xml.responseXML;
          var table="<tr><th>Depart</th><th>Arrive</th></tr>";
          var x = xmlDoc.getElementsByTagName("CD");
          for (i = 0; i <x.length; i++) {
            table += "<tr><td>" +
          x[i].getElementsByTagName("Depart")[0].childNodes[0].nodeValue +
            "</td><td>" +
          x[i].getElementsByTagName("Arrive")[0].childNodes[0].nodeValue +
            "</td><td>" +
          x[i].getElementsByTagName("Date")[0].childNodes[0].nodeValue +
            "</td></tr>";
          }
          document.getElementById("demo").innerHTML = table;
        }
        </script>
        
        </body>
        </html>
        
        <html>
        <style>
        table,th,td {
          border : 1px solid black;
          border-collapse: collapse;
        }
        th,td {
          padding: 5px;
        }
        </style>
        <body>
        
        <button type="button" onclick="loadDoc()">Get flight 
        information</button>
        <br><br>
        <table id="demo"></table>
        
        <script>
        function loadDoc() {
          var xhttp = new XMLHttpRequest();
          xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
              myFunction(this);
            }
          };
          xhttp.open("GET", "Question1.xml", true);
          xhttp.send();
        }
        function myFunction(xml) {
          var i;
          var xmlDoc = xml.responseXML;
          var table=`<tr><th>Depart</th><th>Arrive</th></tr>`;
          var x = xmlDoc.getElementsByTagName("CD");
          for (i = 0; i <x.length; i++) {
            table += `<tr><td>` +
          x[i].getElementsByTagName("Depart")[0].childNodes[0].nodeValue +
            `</td><td>` +
          x[i].getElementsByTagName("Arrive")[0].childNodes[0].nodeValue +
            `</td><td>` +
          x[i].getElementsByTagName("Date")[0].childNodes[0].nodeValue +
            `</td></tr>`;
          }
          document.getElementById("demo").innerHTML = table;
        }
        </script>
        
        </body>
        </html>