2017-05-31 34 views
-2

file1.xml:的JavaScript - 從兩個XML文件將數據加載到一個陣列

<CustomersRoot> 
    <Customer> 
     <CustomerID>1</CustomerID> 
    <CustomerName>Lucy</CustomerName> 
</Customer> 
... 

file2.xml:

<OrdersRoot> 
<Order> 
    <OrderID>1</OrderID> 
    <CustomerID>1</CustomerID> <!--foreign key--> 
    <OrderDescription>Order #1</OrderDescription> 
</Order> 
<Order> 
    <OrderID>2</OrderID> 
    <CustomerID>1</CustomerID> <!--foreign key--> 
    <OrderDescription>Order #2</OrderDescription> 
</Order> 
... 

目前,我加載每個文件分成使用AJAX單獨的陣列,並在html頁面上顯示每個數組。但是,我想結合基於一對多關係的數據。從本質上講,我要顯示這樣的數據:

露西 訂單#1 訂單#2 ... 什麼是最簡單的方式來實現這一目標?

+1

你至今嘗試過什麼? –

+0

「目前,我使用ajax將每個文件加載到不同的數組中,並在HTML頁面上顯示每個數組。」 - 告訴我們這個代碼! – samiles

回答

0

請檢查。

根據你的問題,我已經做到了這一點。

$(document).ready(function() { 
    var orderSummery = new Array(); 
    var orderXml ='<OrdersRoot> <Order> <OrderID>1</OrderID> <CustomerID>1</CustomerID> <!--foreign key--> <OrderDescription>Order #1</OrderDescription> </Order> <Order> <OrderID>2</OrderID> <CustomerID>1</CustomerID> <!--foreign key--> <OrderDescription>Order #2</OrderDescription> </Order> </OrdersRoot>'; 
var customerXml='<CustomersRoot> <Customer> <CustomerID>1</CustomerID> <CustomerName>Lucy</CustomerName> </Customer> </CustomersRoot>'; 
var customerObj = $.parseXML(customerXml); 
$cust= $(customerObj); 
$cust.find('CustomersRoot').find('Customer').each(function(i) { 
     var custid= $(this).find('CustomerID').text(); 
    var custname = $(this).find('CustomerName').text(); 
    var orderProduct=''; 
    var orderObj = $.parseXML(orderXml); 
    $odr= $(orderObj); 
    $odr.find('OrdersRoot').find('Order').each(function(j) { 
       var custrefid= $(this).find('CustomerID').text(); 
      if(custid === custrefid){ 
       orderProduct+=$(this).find('OrderDescription').text() + " "; 
      } 
    }); 
    if(orderProduct !== '') 
    orderSummery.push({ 
        name: custname, 
        orderProduct : orderProduct 
       }); 
}); 

console.log(orderSummery); 
}); 

讓我知道這是工作或不...

相關問題