是否可以使用 jQuery 解析多个 XML 节点但将结果输出为一个。
例如,http://jqueryui.com/autocomplete/#xml上的示例仅解析 name 和 countryName 节点,但我希望它解析其余节点(即 geonameId、lng、lat 和 countryCode)但根据需要输出.
jQuery
$.ajax({
url: "london.xml",
dataType: "xml",
success: function (xmlResponse) {
var data = $("geoname", xmlResponse).map(function () {
return {
value: $("name", this).text() + ", " + ($.trim($("countryName", this).text()) || "(unknown country)"),
id: $("geonameId", this).text()
};
}).get();
$("#match").autocomplete({
source: data,
minLength: 0,
select: function (event, ui) {
log(ui.item ?
"Selected: " + ui.item.value + ", geonameId: " + ui.item.id :
"Nothing selected, input was " + this.value);
}
});
}
});
XML
<geonames>
<geoname>
<name>London</name>
<lat>51.5084152563931</lat>
<lng>-0.125532746315002</lng>
<geonameId>2643743</geonameId>
<countryCode>GB</countryCode>
<countryName>United Kingdom</countryName>
<fcl>P</fcl>
<fcode>PPLC</fcode>
</geoname>
<geoname>
<name>London</name>
<lat>42.983389283</lat>
<lng>-81.233042387</lng>
<geonameId>6058560</geonameId>
<countryCode>CA</countryCode>
<countryName>Canada</countryName>
<fcl>P</fcl>
<fcode>PPL</fcode>
</geoname>
<geoname>
<name>East London</name>
<lat>-33.0152850934643</lat>
<lng>27.9116249084473</lng>
<geonameId>1006984</geonameId>
<countryCode>ZA</countryCode>
<countryName>South Africa</countryName>
<fcl>P</fcl>
<fcode>PPL</fcode>
</geoname>
</geonames>