[英]using Javascript to get unique XML child nodes
我是一個試圖為我的 Com 構建 map 的菜鳥。 編。 class 與谷歌地圖 API。
我有我想要 output 作為標記和信息窗口的數據。
我從我的數據庫中使用了 Codeigniter 到 output 和 XML。 (為隱私修改數據)
<markers>
<item0>
<city>Boston</city>
<latitude>0.01111</longitude>
<longitude>1.2345</longitude>
</item0>
<item1>
<city>Los Angeles</city>
<latitude>9.99999</latitude>
<longitude>2.00011</longitude>
</item1>
</markers>
現在我正在嘗試使用 Javascript 來獲取每個“項目”標簽的所有子節點。
我的回調 function:
var xml = data.responseXML;
var items = xml.documentElement.getElementsByTagName("markers");
// for loop iterates through each the child nodes of the "item" tags.
Array.prototype.forEach.call(items, function(markerElem) {
var city = nodeValue(markersElem.children.item[0]);
var point = new google.maps.LatLng(
parseFloat(nodeValue(markersElem.children.item[1])),
parseFloat(nodeValue(markersElem.children.item[2])));
});
主要問題(我相信)是每個“項目”標簽都包含一個唯一的數字,所以我不能用 getElementsByTagName 方法調用它們。
我嘗試修改 items 變量以獲取“標記”標簽的子節點:
var items = xml.documentElement.getElementsByTagName("markers").children;
但是控制台輸出一個錯誤,其中 items 變量現在未定義。
我也嘗試過修改 XML 文件,但我似乎只能通過 Codeigniter 的內置幫助程序 output XML。 也許有一種方法可以在我不知道的 PHP 7 中創建 DOM 文檔?
It will be much easier if you convert XML in your controller with the simplexml_load_string()
to a PHP array or object and then use the json_encode()
to convert it to JSON format, so it will be much easier to work with this JSON array or JS代碼中的 object。 在您的 controller 中執行此操作並將其發送到您的視圖:
json_encode(simplexml_load_string(your XML here), JSON_UNESCAPED_UNICODE);
我建議您使用XPath因為它允許您將所有元素拉到 cetrain 路徑下,然后您可以正常迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.