Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
Javascript 无法显示xml文件的多个实体,而我可以显示一个_Javascript_Xml - Fatal编程技术网

Javascript 无法显示xml文件的多个实体,而我可以显示一个

Javascript 无法显示xml文件的多个实体,而我可以显示一个,javascript,xml,Javascript,Xml,这是我使用的函数 function displayXML(string) { var i; var xmlDoc = $.parseXML(string); var xml = $(xmlDoc); var table = "<tr><th>Author</th><th>Title</th&g

这是我使用的函数

            function displayXML(string) {
                var i;
                var xmlDoc = $.parseXML(string);
                var xml = $(xmlDoc);
                var table = "<tr><th>Author</th><th>Title</th><th>Genre</th><th>Price</th><th>Publish Date</th><th>Description</th></tr>";
                var x = xml.find('book').size();
                for ( i = 0; i < x; i++) {
                    table += "<tr><td>" +
                    xml[i].getElementsByTagName('author')[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    xml[i].getElementsByTagName('title')[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    xml[i].getElementsByTagName('genre')[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    xml[i].getElementsByTagName('price')[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    xml[i].getElementsByTagName('publish_date')[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    xml[i].getElementsByTagName('description')[0].childNodes[0].nodeValue +
                    "</td></tr>";
                }
                document.getElementById("showResults").innerHTML = table;

            }
对我来说,使用getElementsByTag在一种情况下是可能的,但在另一种情况下是不可用的,这似乎很奇怪

用于“提取”(我通过php调用生成)xml的函数,该函数正在运行

        function getBook() {
                clearResults();
                var request = new XMLHttpRequest();
                var url = "resources/getBooksByTitle.php";
                var dataToSent = "dataToSent=" + document.getElementById("booksDropDown").value;
                request.open("POST", url, true);
                request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                request.onreadystatechange = function() {
                    if (request.readyState == 4 && request.status == 200) {
                        var return_data = request.responseText;
                        displayXML(return_data);

                    }
                }
                request.send(dataToSent);
                document.getElementById("showResults").innerHTML = "processing...";
            }
第二个功能不起作用

function searchBook() {
                clearResults();
                var request = new XMLHttpRequest();
                var url = "resources/getBooksByKeyword.php";
                var dataToSent = "dataToSent=" + document.getElementById("searchBox").value;
                request.open("POST", url, true);
                request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                request.onreadystatechange = function() {
                    if (request.readyState == 4 && request.status == 200) {
                        var return_data = request.responseText;
                        displayXML(return_data);
                    }
                }
                request.send(dataToSent);
                document.getElementById("showResults").innerHTML = "processing...";

            }
函数显示XML(字符串){
var i;
var xmlDoc=$.parseXML(字符串);
var xml=$(xmlDoc);
var table=“authortitlegenrepercepublish DateDescription”;
var x=xml.find('book').length;
对于(i=0;i
xml
对象本身不是数组,所以只能从一本书中提取数据(非数组的大小始终为1)。改用这个。

函数显示XML(字符串){
var i;
var xmlDoc=$.parseXML(字符串);
var xml=$(xmlDoc);
var table=“authortitlegenrepercepublish DateDescription”;
var x=xml.find('book').length;
对于(i=0;i

xml
对象本身不是数组,所以只能从一本书中提取数据(非数组的大小始终为1)。改用这个。

告诉我们如何提取XML@SuperCoolHandsomeGelBoy编辑演示如何提取XML@SuperCoolHandsomeGelBoy编辑
 "Uncaught TypeError: Cannot read property 'getElementsByTagName' of undefineddisplayXML"
        function getBook() {
                clearResults();
                var request = new XMLHttpRequest();
                var url = "resources/getBooksByTitle.php";
                var dataToSent = "dataToSent=" + document.getElementById("booksDropDown").value;
                request.open("POST", url, true);
                request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                request.onreadystatechange = function() {
                    if (request.readyState == 4 && request.status == 200) {
                        var return_data = request.responseText;
                        displayXML(return_data);

                    }
                }
                request.send(dataToSent);
                document.getElementById("showResults").innerHTML = "processing...";
            }
function searchBook() {
                clearResults();
                var request = new XMLHttpRequest();
                var url = "resources/getBooksByKeyword.php";
                var dataToSent = "dataToSent=" + document.getElementById("searchBox").value;
                request.open("POST", url, true);
                request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                request.onreadystatechange = function() {
                    if (request.readyState == 4 && request.status == 200) {
                        var return_data = request.responseText;
                        displayXML(return_data);
                    }
                }
                request.send(dataToSent);
                document.getElementById("showResults").innerHTML = "processing...";

            }
function displayXML(string) {
            var i;
            var xmlDoc = $.parseXML(string);
            var xml = $(xmlDoc);
            var table = "<tr><th>Author</th><th>Title</th><th>Genre</th><th>Price</th><th>Publish Date</th><th>Description</th></tr>";
            var x = xml.find('book').length;
            for ( i = 0; i < x; i++) {
                table += "<tr><td>" +
                xml.find('book')[i].getElementsByTagName('author')[0].childNodes[0].nodeValue +
                "</td><td>" +
                xml.find('book')[i].getElementsByTagName('title')[0].childNodes[0].nodeValue +
                "</td><td>" +
                xml.find('book')[i].getElementsByTagName('genre')[0].childNodes[0].nodeValue +
                "</td><td>" +
                xml.find('book')[i].getElementsByTagName('price')[0].childNodes[0].nodeValue +
                "</td><td>" +
                xml.find('book')[i].getElementsByTagName('publish_date')[0].childNodes[0].nodeValue +
                "</td><td>" +
                xml.find('book')[i].getElementsByTagName('description')[0].childNodes[0].nodeValue +
                "</td></tr>";
            }
            document.getElementById("showResults").innerHTML = table;

        }