我想以表格格式检索HTML中的XML数据。我尝试使用Ajax,但数据未到。在这里可能是什么问题,任何人都可以帮助我。我是ajax的新手。随时告诉我代码中有什么错误。下面是我想要的图片
$(document).ready(function() {
$(window).load(function () {
$.ajax({
type: 'GET',
url: '2.xml',
dataType: 'xml',
success: function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var table="<tr><th>Artist</th><th>Title</th></tr>";
var x = xmlDoc.getElementsByTagName("Row");
for (i = 0; i <x.length; i++) {
table += "<tr><td>" +
x[i].getElementsByTagName("Process")[0].childNodes[0].nodeValue +
"</td><td>" +
x[i].getElementsByTagName("Product")[0].childNodes[0].nodeValue +
"</td></tr>" +
x[i].getElementsByTagName("Operation")[0].childNodes[0].nodeValue +
"</td></tr>" +
x[i].getElementsByTagName("Description")[0].childNodes[0].nodeValue +
"</td></tr>" +
x[i].getElementsByTagName("Batch")[0].childNodes[0].nodeValue +
"</td></tr>" +
x[i].getElementsByTagName("QTY")[0].childNodes[0].nodeValue +
"</td></tr>" +
x[i].getElementsByTagName("PlannedSchedule")[0].childNodes[0].nodeValue +
"</td></tr>" +
x[i].getElementsByTagName("ActualSchedule")[0].childNodes[0].nodeValue +
"</td></tr>" +
x[i].getElementsByTagName("Status")[0].childNodes[0].nodeValue +
"</td></tr>";
}
document.getElementById("demo").innerHTML = table;
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="demo"></table>
XML:
<Rowsets>
<Rowset>
<Row>
<Process>70787863</Process>
<Product>600033</Product>
<Operation>Operation goes here</Operation>
<Description>Operation description goes here</Description>
<Batch>259</Batch>
<QTY>999</QTY>
</Row>
<Row>
<Process>707863</Process>
<Product>6033</Product>
<Operation>Operation goes here</Operation>
<Description>Operation description goes here</Description>
<Batch>249</Batch>
<QTY>99</QTY>
</Row>
</Rowset>
</Rowsets>
答案 0 :(得分:1)
我认为您代码的问题是您在xmlDoc中变得未定义。
您可以使用以下代码来实现它。
HTML
<table id="demo">
<thead>
<th>Product</th>
<th>Process</th>
<th>Operation</th>
<th>Description</th>
<th>Batch</th>
<th>Qty</th>
</thead>
<tbody></tbody>
JS
$.ajax({
type: 'GET',
url: 'data.xml',//Your xml data
dataType: 'xml',
success: function(xml){
$(xml).find("Row").each(function(){
var Product = $( this ).find( 'Process' ).text()
var Process = $( this ).find( 'Product' ).text()
var Operation = $( this ).find( 'Operation' ).text()
var Description = $( this ).find( 'Description' ).text()
var Batch = $( this ).find( 'Batch' ).text()
var Qty = $( this ).find( 'Qty' ).text()
$('#demo tbody').append('<tr><td>'+Product+'</td><td>'+Process+'</td><td>'+Operation+'</td><td>'+Description+'</td><td>'+Batch+'</td><td>'+Qty+'</td></tr>')
});
}
})
答案 1 :(得分:0)
您应该真正查看JQuery数据表,我一直使用它们来用Ajax数据填充表。