[英]Create array from xml nodes using jquery
我正在嘗試將xml文件中的經/緯度點隔離到數組中。 我不願意將lat / lon子節點文本推送到數組。 理想情況下,我希望數組讀為:
點1 = lat1,lon1
點2 = lat2,lon2
這是我到目前為止的內容:
$.ajax({
type: "GET",
url: "points.xml",
dataType: "xml",
success: function (xml) {
//find each TP
var areaPlots = $(xml).find('plot_area').each(function () { $(this).find('area').each(function () {
var areas = $(this);
$(areas).find('point').each(function () {
var points = $(this);
$(points).find('lat_num').each(function () {
var latitude = $(this).text();
$(points).find('lon_num').each(function () {
var longitude = $(this).text();
})
})
})
})
//end of success function
}
XML:
<plot_area>
<area>
<point>
<lat_num>42.00861</lat_num>
<lon_num>-94.00351</lon_num>
</point>
<point>
<lat_num>43.00921</lat_num>
<lon_num>-89.00024</lon_num>
</point>
<point>
<lat_num>02.008427</lat_num>
<lon_num>-74.99588</lon_num>
</point>
</area>
</plot_area>
如何將每個點的經/緯對推入數組?
也許您可以創建一個對象point
,然后為xml的每個點創建一個屬性'point [n]',並使用counter
為其添加一個遞增數字。 然后,第一個屬性的名稱將變為“ point1”。
然后將具有“ lat”和“ lon”值的數組添加到該屬性。
這樣,您可以在像這樣的數組中獲取“ lat”和“ lon”值:
point.point1;
point.point2;
point.point3;
例如:
<script type="text/javascript">
$.ajax({
type: "GET",
url: "points.xml",
dataType: "xml",
success: function (xml) {
var point = {};
var counter = 1;
//find each TP
var areaPlots = $(xml).find('plot_area').each(function () {
$(this).find('area').each(function () {
var areas = $(this);
$(areas).find('point').each(function () {
var points = $(this);
var name = "point" + counter;
point[name] = [];
$(points).find('lat_num').each(function () {
point[name].push($(this).text());
$(points).find('lon_num').each(function () {
point[name].push($(this).text());
});
});
counter++;
});
console.log(point.point1);
console.log(point.point2);
console.log(point.point3);
});
//end of success function
});
}
});
</script>
console.log語句將導致:
["42.00861", "-94.00351"]
["43.00921", "-89.00024"]
["02.008427", "-74.99588"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.