[英]How to parse the xml response
我要求外部api,它給出以下響應。 它是XML格式。
這是方法,我如何使用
$('#trigger').click(function()
{
var token = '662d3330f192b4af77d5eef8de58f7e8c01a12a7';
var location = $('#Address').val();
var lat = $('#latitude').val();
var long = $('#longitude').val();
$.ajax({
url: 'https://api.quickblox.com/data/Location',
data: {
token:'2100d8b55d4a389470b849de9378093dcda12903'
},
method: 'get',
success: function(xml) {
console.log(xml);
}
});
});
這是我從服務器獲得的響應。
#document
<data type="array" class_name="Location" skip="0" limit="0">
<Location>
<_id>558a8325535c1246bb00d5c5</_id>
<_parent_id>test-api</_parent_id>
<created-at type="integer">1435140901</created-at>
<lat type="float">11.0270643</lat>
<location>Avarampalayam, Coimbatore, Tamil Nadu, India</location>
<long type="float">76.9830277</long>
<updated-at type="integer">1435140901</updated-at>
<user-id type="integer">3566216</user-id>
</Location>
<Location>
<_id>558a83dd535c12843900dbbe</_id>
<_parent_id>test-api</_parent_id>
<created-at type="integer">1435141085</created-at>
<lat type="float">11.0310806</lat>
<location>Mettupalayam Bus Stand, Mettupalayam Road, Tatabad, Coimbatore, Tamil Nadu, India</location>
<long type="float">76.9525282</long>
<updated-at type="integer">1435141085</updated-at>
<user-id type="integer">3566216</user-id>
</Location>
<Location>
<_id>558b8d97535c129bd3000e04</_id>
<_parent_id>test-api</_parent_id>
<created-at type="integer">1435209111</created-at>
<lat nil="true"/>
<location>Hyderabad, Telangana, India</location>
<long nil="true"/>
<updated-at type="integer">1435209111</updated-at>
<user-id type="integer">3566216</user-id>
</Location>
<Location>
<_id>558b8d81535c12aadd046730</_id>
<_parent_id>test-api</_parent_id>
<created-at type="integer">1435209089</created-at>
<lat type="float">13.1067448</lat>
<location>Avadi, Tamil Nadu, India</location>
<long type="float">80.0969511</long>
<updated-at type="integer">1435209089</updated-at>
<user-id type="integer">3566216</user-id>
</Location>
<Location>
<_id>558b86ad535c123883005741</_id>
<_parent_id>test-api</_parent_id>
<created-at type="integer">1435207341</created-at>
<lat type="float">10.3673123</lat>
<location>Dindigul, Tamil Nadu, India</location>
<long type="float">77.9802906</long>
<updated-at type="integer">1435207341</updated-at>
<user-id type="integer">3566216</user-id>
</Location>
<Location>
<_id>558b8f72535c126322011368</_id>
<_parent_id>test-api</_parent_id>
<created-at type="integer">1435209586</created-at>
<lat type="float">12.977357</lat>
<location>Bangalore City Junction, Gubbi Thotadappa Road, Majestic, Bengaluru, Karnataka, India</location>
<long type="float">77.57077</long>
<updated-at type="integer">1435209586</updated-at>
<user-id type="integer">3566216</user-id>
</Location>
</data>
這是圖像的快照
如何從響應中獲取_id,created_at字段?
我在成功功能中嘗試過這樣
success: function(xml) {
console.log(xml);
$(xml).filter('data').find('Location').each(function()
{
var id = $(this).find('_id').text();
var parentId = $(this).find('_parent_id').text();
var createdAt = new Date($(this).find('created-at').text());
var lat = parseFloat($(this).find('lat').text());
});
}
但是我什么也沒得到。 我怎樣才能做到這一點 ?
嘗試這個:
success: function(xml) {
console.log(xml);
var xmlDoc = $.parseXML(xml);
$(xmlDoc).find("Location").each(function(idx, value) {
var id = $(value).find("_id").text();
var parentId = $(value).find('_parent_id').text();
var createdAt = new Date(parseInt($(value).find('created-at').text()));
var lat = parseFloat($(value).find('lat').text());
});
}
最好在網絡上使用json
所以更換
url: 'https://api.quickblox.com/data/Location'
同
url: 'https://api.quickblox.com/data/Location.json'
可以毫無問題地訪問JSON
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.