Получить данные XML в формате таблицы в формате HTML - PullRequest
0 голосов
/ 02 июля 2018

Я хочу получить данные XML в формате HTML в виде таблицы. Я пытался использовать 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 голосов
/ 02 июля 2018

Думаю, проблема с вашим кодом в том, что вы получаете неопределенное значение в 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>')

        });
    }
    })
0 голосов
/ 02 июля 2018

Вы действительно должны заглянуть в JQuery Datatables, я использую их все время для заполнения таблицы данными Ajax.

JQuery Datatables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...