Det tog av någon anledning lång tid för mig att fatta att PHP har utmärkta inbyggda funktioner för att läsa XML. Så här gör man:
Först måste vi ha nått att parsa, så vi hämtar väderleksrapporten för Södertälje hos Yahoos väderapi:
$data = file_get_contents('
http://weather.yahooapis.com/forecastrss?p=SWXX0026&u=c'
);
När XMLen nu ligger i variabeln $data fixar vi en parser och ber den lägga informationen i en array:
$parser = xml_parser_create_ns();
xml_parse_into_struct( $parser, $data, $values );
Detta lägger informationen som finns i varaibeln $data i arrayen $values. Nu kan vi komma åt värdena genom vanliga indexeringsnotation, i det här fallet hämtar vi temperaturen:
print_r( $values[48][attributes][TEMP] );
Slutligen stänger vi parsern:
xml_parser_free( $parser );
Hela koden ser ut så här:
<?php
$data = file_get_contents('http://weather.yahooapis.com/forecastrss?p=SWXX0026&u=c');
$parser = xml_parser_create_ns();
xml_parse_into_struct( $parser, $data, $values );
print_r( $values[48][attributes][TEMP] );
xml_parser_free( $parser );
?>
Ett hett tips är att använda print_r()
på hela arrayen, på så vis kan man lätt få reda på vilken information som finns och vilka indexeringsnycklar som kan komma åt informationen:
print_r( $values );
Bra post.
Jag brukar själv använda mig av simplexml, tycker den fungerar kanon.
$xmldata =simplexml_load_string($data);
Schysst, jag får kolla på det.