以html的表格格式检索xml数据

时间:2018-07-02 07:36:54

标签: jquery angularjs ajax xml

我想以表格格式检索HTML中的XML数据。我尝试使用Ajax,但数据未到。在这里可能是什么问题,任何人都可以帮助我。我是ajax的新手。随时告诉我代码中有什么错误。下面是我想要的图片 enter image description here

 $(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>

2 个答案:

答案 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数据填充表。

JQuery Datatables