2015-06-22 63 views
4

我遇到了使用Jquery传递XML的问题。我在遍历jquery时得到空数组。请帮助我如何从XML数组获取数据。我在下面提到了我的代码。使用Jquery解析XML数组

XML

<?xml version="1.0" encoding="UTF-8"?> 
<json> 
    <json> 
    <CustomerName>999GIZA MID INSURANCEAND SERVICES PVT LTD</CustomerName> 
     <mobiLastReceiptDate>null</mobiLastReceiptDate> 
    </json> 
    <json> 

     <CustomerName>A SHRIVENGATESH</CustomerName> 
     <mobiLastReceiptDate>null</mobiLastReceiptDate> 
    </json> 
    <json> 
     <CustomerName>A 1 PROCESS</CustomerName> 
     <mobiLastReceiptDate>null</mobiLastReceiptDate> 
    </json> 
    <json> 
     <CustomerName>A A A ENTERPRISES</CustomerName> 
     <mobiLastReceiptDate>null</mobiLastReceiptDate> 
    </json> 
    <json> 

     <CustomerName>A ALAGUSUNDARAM</CustomerName> 
     <mobiLastReceiptDate>null</mobiLastReceiptDate> 
    </json> 
</json> 

jQuery的

page_response=getResponse("yyyURL"); 

page_response.success(function(data){ 
console.log(data.results[0]); 
console.log($(data).find("CustomerName")); 

$(data).find("json").each(function(i, item) { 
var heures = $(item).attr("CustomerName"); 
var nbr = $(item).attr("EMI"); 

<!--- Am getting array.. ineed to get name and EMI--> 
console.log(heures); 
}); 

}); 

回答

4

EMICustomerNamejson下的元素,所以你可以使用.find()找到这些元素,然后text()得到它的价值。

$(data).find("json").each(function (i, item) { 
    var heures = $(item).find("CustomerName").text(); 
    var nbr = $(item).find("EMI").text(); 
    console.log(heures); 
}); 

.attr()用于获取元素的属性值,就像在<json EMI="abc">...</json>

0

您使用了错误的方法获取节点,XML元素的基础是“节点属性”。所以如果你想在XML元素中找到任何节点,你可以使用jquery.find(),但是当你想在这种情况下找到某个节点的任何属性时,你可以使用jquery.attr()函数。此外,jquery.val()和jQuery.text()是用于分别获取元素的值和文本的函数。

希望这会有所帮助!

干杯!