XML のサンプルを次に示します。
<markers><marker name="Faulkner State Community College" lat="30.853801" lng="-87.776692" type="PS" number="279" address="CFOT, CPCT" /></markers>
パーサーは、名前、緯度、LAN、および住所を取得しています。タイプと数を拾っていません。type と number の出力は未定義です。文字列以外に変換する必要はありません。
これが私のコードです:
var markerNodes = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markerNodes.length; i++) {
var name = markerNodes[i].getAttribute("name");
var address = markerNodes[i].getAttribute("address");
var type = markerNodes[i].getAttribute("type");
var number = markerNodes[i].getAttribute("number");
var latlng = new google.maps.LatLng(
parseFloat(markerNodes[i].getAttribute("lat")),
parseFloat(markerNodes[i].getAttribute("lng")));
createMarker(latlng, name, address, type, number);
}
念のため、「createMarker」のコードを次に示します。
function createMarker(latlng, name, address, type, number) {
var html = "<font face=\"Arial\" size=\"2\"><b><a href=\"school.php?school_number=" + number + "\">" + name + "</a></b> <br/>Certifications: " + address + "<br/>School #: " + number + "</font>";
var marker = new google.maps.Marker({
map: map,
position: latlng,
icon: customIcon(type)
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
markers.push(marker);
}