Avatar billede larsettrup Nybegynder
29. marts 2009 - 13:21 Der er 4 kommentarer og
1 løsning

PHP SimpleXML Problem

Hejsa,

Nu har jeg siddet med et lille problem hele dagen og er gået lidt kold i det. Måske i kan hjælpe. Jeg forsøger blot at hente vejr data fra: http://www.google.com/ig/api?weather=Denmark. Data'en er allerede i XML format, men jeg får enten fejl: "Fatal error: Uncaught exception ‘Exception' with message ‘String could not be parsed as XML" eller så får jeg ingenting ud.

Her er min kode:

<?php
$location = "Denmark";
$forecast = "http://www.google.com/ig/api?weather=".$location;
$xmlstr = file_get_contents($forecast);
$xml = new SimplexmlElement($xmlstr);
echo $xml;           
?>     

Håber i kan hjælpe.

/Lars
Avatar billede larsettrup Nybegynder
29. marts 2009 - 13:22 #1
Beklager.. kunne ikke lige finde PHP kategorien. Gik nok lidt stærkt.
Avatar billede hkb-x Nybegynder
29. marts 2009 - 13:42 #2
Det interesante er vel hvad $xmlstr indeholder. prøv at udskriv den?
Avatar billede larsettrup Nybegynder
29. marts 2009 - 13:57 #3
Den indeholder XML. Indsætter jeg "header ("content-type: text/xml");" før jeg udskriver $xmlstr så viser den XML i browseren, men den viser ingenting, hvis jeg kører det igennem SimpleXML bagefter.

UDSKRIVER XML
<?php
$location = "Denmark";
$forecast = "http://www.google.com/ig/api?weather=".$location;
$xmlstr = file_get_contents($forecast);
header ("content-type: text/xml");
echo $xmlstr;
?>               

UDSKRIVER "XML tolkningsfejl: intet element fundet adresse: http://domæne.dk/vejr.php linje 1, kolonne 1:"
<?php
$location = "Denmark";
$forecast = "http://www.google.com/ig/api?weather=".$location;
$xmlstr = file_get_contents($forecast);
header ("content-type: text/xml");
$xml = new SimplexmlElement($xmlstr);
echo $xml;
?> 

Kan det have noget med iGoogle Sessions at gøre? cURL?

/Lars
Avatar billede arne_v Ekspert
29. marts 2009 - 19:07 #4
echo $xml;

->

echo $xml->asXml();
Avatar billede larsettrup Nybegynder
30. marts 2009 - 13:41 #5
Tak for svar. Fandt endelig løsning på mit problem, som var langt mere komplikeret end umiddelbart så.. :-) Tak for hjælpen..

$location = "Denmark";
$str  = array('Accept-Language: '.$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com/ig/api?weather='.$location);
curl_setopt($ch, CURLOPT_HTTPHEADER, $str);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$weather = simplexml_load_string(utf8_encode(curl_exec($ch)));
$weather = $weather->weather;
echo $weather->current_conditions->condition["data"];
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester