При разборе XML, getAttribute получает некоторые элементы, а не другие - PullRequest
0 голосов
/ 02 декабря 2011

Вот пример XML:

<markers><marker name="Faulkner State Community College" lat="30.853801" lng="-87.776692" type="PS" number="279" address="CFOT, CPCT" /></markers>

Парсер выбирает имя, адрес, адрес и адрес. Это не подобрать тип и номер. Выходные данные для типа и числа не определены. Мне не нужно, чтобы они преобразовывались во что-либо, кроме строки.

Вот мой код:

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);
}

1 Ответ

0 голосов
/ 03 декабря 2011

У меня было два набора парсинга маркерных узлов, и я редактировал неправильный набор.

...