好的,我正在尝试从 JavaScript 中的 get 请求解析 XML。
XML 是这样的
<markers>
<marker>
<name>
<![CDATA[ Pan Africa Market ]]>
</name>
<address>
<![CDATA[ 1521 1st Ave, Seattle, WA ]]>
</address>
<lat>47.608940</lat>
<lng>-122.340141</lng>
<price>150</price>
<type>restaurant</type>
</marker>
</markers>
我正在尝试将标记推入数组中,以便稍后可以访问它(我正在用它构建一个谷歌地图标记)
在结果变量中,我保存了来自 get 请求的响应(这是完美的,我知道它因为我可以提醒“params.length”)
var result = this.responseText;
var xml = Ti.XML.parseString(result);
var items = xml.documentElement.getElementsByTagName("marker");
var name = xml.documentElement.getElementsByTagName("name");
var value = xml.documentElement.getElementsByTagName("address");
var data = [];
for (var i=0;i<items.length;i++) {
alert(items.item(i).getElementsByTagName("price").item(0).text);
}
我可以提醒商品价格(当然是一一对应),但问题是如何保存该价格以便稍后访问。
我红色的是我必须将它推入 for 循环中的数据变量,但我只是不知道如何。
提前致谢。
PD 我在 Appcelerator 中使用它。 (我觉得这个不是很重要)
尝试这个:
var markers = xml.documentElement.getElementsByTagName("marker");
var data = [];
for (var i=0;i<markers.length;i++) {
console.log(markers[i].getElementsByTagName("name")[0]);
data.push({
name: markers[i].getElementsByTagName("name")[0].textContent,
address: markers[i].getElementsByTagName("address")[0].textContent
})
}
// data is now [{name: "...", address: "..." }]
查看工作小提琴:http://jsfiddle.net/nrabinowitz/XZnXn/ http://jsfiddle.net/nrabinowitz/XZnXn/
有关在 Javascript 中导航 DOM 结构的更多信息,您可能需要查看MDN DOM 参考 https://developer.mozilla.org/en/Gecko_DOM_Reference.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)