[英]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.