Api Weather de Google, como leer el xml en php

Wednesday, January 13, 2010 17:52
Posted in category Programación

Estoy pensando en incluir el api del tiempo de google en mi web del Camino de Santiago.
Estuve investigando como leer el XML que devuelve el api de google y que os expliqué en un artículo anterior, de la manera más sencilla.
Encontré este código, que creo que está bastante limpio:

<?
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=jakarta');
$information = $xml->xpath("/xml_api_reply/weather/forecast_information");
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions");
?>
<html>
    <head>
        <title>Google Weather API</title>
    </head>
    <body>
        <h1><?= print $information[0]->city['data']; ?></h1>
        <h2>Today's weather</h2>
        <div class="weather">
            <img src="<?= 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"?>
            <span class="condition">
            <?= $current[0]->temp_f['data'] ?>° F,
            <?= $current[0]->condition['data'] ?>
            </span>
        </div>
        <h2>Forecast</h2>
        <? foreach ($forecast_list as $forecast) : ?>
        <div class="weather">
            <img src="<?= 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"?>
            <div><?= $forecast->day_of_week['data']; ?></div>
            <span class="condition">
	            <?= $forecast->low['data'] ?>° F - <?= $forecast->high['data'] ?>° F,
	            <?= $forecast->condition['data'] ?>
            </span>
        </div>
        <? endforeach ?>

En el caso del español, es problable que tengais alún problema con la interpretación de la codificación de los resultados del XML devuelto por Google.
Podeis añadir a la URL el siguiente parámetro para corregir los errores de la codificación:

&oe=utf-8
You can leave a response, or trackback from your own site.

7 Responses to “Api Weather de Google, como leer el xml en php”

  1. hispano says:

    September 29th, 2010 at 12:37 am

    muy bueno, gracias…

  2. Carlos Arturo says:

    February 16th, 2011 at 1:13 am

    De verdad Muchas Gracias me ha sido Muy util…
    Qisiera saber la posibilidad de colocarlo en español y en Grados celciius

    Mi correo : arturoagudelo18@gmail.com

  3. piri says:

    April 11th, 2011 at 4:21 pm

    cambia temp_f
    por temp_c

  4. Victor says:

    May 3rd, 2011 at 3:27 pm

    MUchas Gracias!!!!!!!

  5. juan says:

    May 5th, 2011 at 7:16 am

    Gracias por el articulo me ha venido genial para pensar en poner otras funcionalidades a mi web. El problema que tengo es que usando el ejemplo anterior me funciona bien en local pero no puede acceder al xml si lo subo a mi servidor que tambien tiene php 5 
    Alguien sabe si hay que activar algo en los servidores para que esto funcione?.
    Gracias

  6. Cristian says:

    July 5th, 2011 at 5:17 pm

    Una consulta,para que de los grados en C° en el forecast como sería?
    Y para solucionar el problema con la codificación,donde se agrega el &oe=utf-8 ?

    Saludos y gracias por tu ayuda 

  7. Fernando says:

    September 25th, 2011 at 10:35 pm

    Mm gracias por el codigo lo busque por el san google

Leave a Reply