Data uit XML feed halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels van Hoogdalem

Niels van Hoogdalem

30/08/2017 08:26:09
Quote Anchor link
Beste PHP-ers,

Ik probeer data uit een XML feed te halen, maar heb daar wat problemen mee.

Bijvoorbeeld uit de buienradar.nl XML feed, https://xml.buienradar.nl/, wil ik data halen uit mijn stad Eindhoven.

Middels onderstaande code zou ik de huidige temperatuur op moeten kunnen halen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    
$data = simplexml_load_file($url);
$huidigetemp = $data->weergegevens->actueel_weer->weerstations->weerstation->temperatuurGC;


Nu hebben al deze weerstations een ID, en daar gaat het fout. Het ID van Eindhoven is 6370. Vervolgens probeer ik op de volgende manier de data uit Eindhoven binnen te halen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    
$data = simplexml_load_file($url);
$huidigetemp = $data->weergegevens->actueel_weer->weerstations->weerstation id="6370"->temperatuurGC;


Maar daar lukt het me niet mee. Ik denk dat het middels de spatie in tussen Weerstation en ID fout gaat.

Wellicht een rookie mistake, maar kan iemand vertellen hoe dit te omzeilen is? Ik ben nog een beginnend PHP-er, vandaar deze vraag.

Bedankt!
 
PHP hulp

PHP hulp

08/05/2024 15:22:49
 
Willem vp

Willem vp

30/08/2017 10:10:31
Quote Anchor link
Ik zou de gegevens eruit halen middels XPath:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$xml
= simplexml_load_file('xml.buienradar.xml');

$obj = $xml->xpath('/buienradarnl/weergegevens/actueel_weer/weerstations/weerstation[@id=6370]');

$temp = $obj[0]->temperatuurGC;

?>
 
Niels van Hoogdalem

Niels van Hoogdalem

30/08/2017 11:34:48
Quote Anchor link
Bedankt Willem! Het is me gelukt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.