繁体   English   中英

无法使用HTML + JavaScript将.xml文件加载到.php文件中

[英]Unable to get .xml file to load in to .php file using html + javascript

我对此不需要任何幻想。 我正在加载一个问答页面。 我要在单独的文件上进行问答,所以我可以只更新文件,下次有人加载该文件时,它将更新页面。

我创建了一个文件“ faq.xml”,并试图将其加载到我的faq.php文件中。

<p id="xmlp" class="content" style="text-align: center">
    <!-- XML should go here -->
</p>
<script>
    function loadXMLDoc() {
        var xmlhttp = new XMLHttpRequest();
        myFunction(this);

        xmlhttp.open("GET", "faq.xml", true);
        xmlhttp.send();
    }

    function myFunction(xml) {
        var x, i, xmlDoc, table;
        xmlDoc = xml.responseXML;
        table = "<tr><th>Question</th><th>Answer</th></tr>";
        x = xmlDoc.getElementsByTagName("faqs")
        for (i = 0; i < x.length; i++) {
            table += "<tr><td>" +
                    x[i].getElementsByTagName("question")[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    x[i].getElementsByTagName("answer")[0].childNodes[0].nodeValue +
                    "</td></tr>";
        }
        document.getElementById("xmlp").innerHTML = table;
    }
</script>

无论出于什么原因,它都没有加载任何东西。 XML文件当前具有此...

<?xml version="1.0" encoding="UTF-8"?>
<faqs>
    <question>When do you fly?</question>
    <answer>We fly at sunrise weather permitting.  Flights are more peaceful and the winds are great.  We even fly low enough to have a conversation with those less fortunate on the ground.  People tend to hang around at launch and landings to see what it’s all about.</answer>
</faqs>

有什么建议么? 我是XML的新手(这是我的第一个)。

在此先感谢您。


我发出了警报,以确保js入门并能够正常运行。

<script>
    loadXMLDoc();
    function loadXMLDoc() {
        var xmlhttp = new XMLHttpRequest();
        alert();
        myFunction(this);

        xmlhttp.open("GET", "faq.xml", true);
        xmlhttp.send();
    }

仍然不确定在哪里。


我进行了更多测试,我认为至少发现了哪里有问题...

<p id="xmlp" class="content" style="text-align: center">
    <!-- XML should go here -->
</p>
<script>
    function loadXMLDoc() {
        var xmlhttp = new XMLHttpRequest();
        myFunction(this);

        xmlhttp.open("GET", "faq.xml", true);
        xmlhttp.send();
    }

    function myFunction(xml) {
        var x, i, xmlDoc, table;
        xmlDoc = xml.responseXML;
        table = "<tr><th>Question</th><th>Answer</th></tr>";
alert("This one works");
        x = xmlDoc.getElementsByTagName("faqs")
alert("This one does not work");
        for (i = 0; i < x.length; i++) {
            table += "<tr><td>" +
                    x[i].getElementsByTagName("question")[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    x[i].getElementsByTagName("answer")[0].childNodes[0].nodeValue +
                    "</td></tr>";
        }
        document.getElementById("xmlp").innerHTML = table;
    }
</script>

这是一个通过AJAX从https://www.w3schools.com/js/tryit.asp?filename=tryjs_ajax_xml加载xml文件的基本示例:

<body onLoad="loadXMLDocument('someXMLfile.xml')">

<p>
   <b>Status:</b> <span id="statusInfo"></span>
</p>
<p>
   <b>Status text:</b><span id="statusTextInfo"></span>
</p>
<p>
   <b>Response:</b> <span id="xmlContent"></span>
</p>



<script>
function loadXMLDocument(url) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById('statusText').innerHTML = this.status;
      document.getElementById('statusTextInfo').innerHTML = this.statusText;
      document.getElementById('xmlContent').innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", url, true);
  xhttp.send();
}
</script>

</body>

这会将XML文件加载到Javascript中。 尽管正如我提到的那样,如果您一次掌握AJAX,PHP和XML,直接的方法可能是对服务器进行AJAX调用并使用php函数处理xml。

4/200状态代码使AJAX调试更加容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM