Получить данные XML для использования веб-страницы

0

То, что я пытаюсь сделать:

  • Получить местоположение на основе IP (Done)
  • Используйте код города и страны для использования API openweather (Готово)
  • Прочтите XML на моей веб-странице, чтобы я мог отображать поле "Температура".

Это мое первое предприятие по использованию XML на веб-страницах, и я пробовал уже 3 дня без успеха. Я искал google и stackoverflow, и до сих пор пробовал много вещей, включая SimpleXMLElement, без везения.

То, что у меня есть на моей странице, - это просто сгенерированная ссылка на лист XML для вашего местоположения.

<script language="JavaScript" src="/geoip.js"></script>
<script language="JavaScript">
    var country = geoip_country_code();
    var city = geoip_city();
    document.write('<a href="http://api.openweathermap.org/data/2.5/weather?q=' + city + ',' + country + '&mode=xml&units=metric">Link text</a>');
</script>   

Как я могу отображать текст из обязательного поля на моей странице?

Заранее спасибо! :)

Теги:

3 ответа

1
Лучший ответ

Возможно, было бы проще изменить вызов API для возврата JSON, и в этом случае вы могли бы использовать этот код, temps хранятся в temp, temp_min и temp_max.

var country = geoip_country_code();
var city = geoip_city();

$.getJSON('http://api.openweathermap.org/data/2.5/weather?q=' + city + ',' + country + '&mode=json&units=metric', function( json ) {
    var temp = json.main.temp;
    var temp_min = json.main.temp_min;
    var temp_max = json.main.temp_max;

    document.write( 'Temp: ' + temp + '<br>');
    document.write( 'Temp Min: ' + temp_min + '<br>');
    document.write( 'Temp Max: ' + temp_max + '<br>');
});
  • 0
    Это было намного проще! Спасибо за это, все работает отлично!
  • 0
    Просто быстрый вопрос: когда у меня есть код на моей странице, он заменяет весь контент белым фоном и только эти значения. Я попытался разместить строки «document.write» в другом месте на моей странице, но ничего не появляется.
0

Вы можете использовать библиотеку javascript для преобразования xml в объект javascript - одна такая библиотека называется xml2json, она работает как плагин jQuery: http://www.fyneworks.com/jquery/xml-to-json/

Тогда вы можете просто сделать:

var xmlObject;

$.ajax({
    url: url_of_xml,
    success: function(data) {
        xmlObject = $.xml2json(data);
    }
});

Затем вам просто нужно поместить данные на свою страницу. Объект в моем примере фальшив, но он дает вам идею:

// put this line in the success callback of your ajax call
// after you create the xmlObject
$('#temp').html(xmlObject.weather.temp);
0

Чтобы отобразить temperature вы получаете XML и читаете один из трех атрибутов температуры из возвращаемого XML:

 $.get("http://api.openweathermap.org/data/2.5/weather?q=' + city + ',' + country + '&mode=xml&units=metric", function(xml) {
 avg = $(xml).find("temperature").attr("value"));
 max = $(xml).find("temperature").attr("max"));
 min = $(xml).find("temperature").attr("min"));

(используя JQuery)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню