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;
}