Avatar billede xpresand Nybegynder
29. august 2013 - 20:35 Der er 11 kommentarer og
1 løsning

XML parser error

Hej!

Nu har jeg prøvet med mange forskellige koder, og lige meget hvad så får jeg samme fejl når jeg prøve at læse denne XML fil.

https://trustbox.trustpilot.com/r/mackabler.dk.xml

Jeg har prøve at læse den med:
SimpleXMLElement()
file_get_contents()
simplexml_load_file()

Og ved alle 3 forsøg får jeg:
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 1: parser error : Start tag expected, '<' not found in /var/www/satio.dk/sejeapps/test.php on line 5

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ‹ in /var/www/satio.dk/sejeapps/test.php on line 5

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /var/www/satio.dk/sejeapps/test.php on line 5

Linje 5 er den linje hvor jeg henter XML filen. Hvis jeg prøve at bruge en anden XML fil så virker det hele uden nogen problemer.

Nogen der ved hvad fejlen er?
Tak på forhånd :)
Avatar billede repox Seniormester
29. august 2013 - 20:44 #1
Hvor er koden?
Avatar billede xpresand Nybegynder
29. august 2013 - 21:02 #2
Har prøvet alle 3, og de giver alle fejl

$homepage = file_get_contents('http://trustbox.trustpilot.com/r/mackabler.dk.xml');
echo $homepage;

$xml=simplexml_load_file("http://trustbox.trustpilot.com/r/mackabler.dk.xml");
print_r($xml);

$obj = new SimpleXMLElement('http://trustbox.trustpilot.com/r/mackabler.dk.xml');
var_dump($obj->title);
Avatar billede repox Seniormester
29. august 2013 - 21:11 #3
Hvilken fejl giver den første?
Avatar billede xpresand Nybegynder
29. august 2013 - 21:23 #4
Den giver ikke en konkret fejl, men udskriver blot en masse ulæslige tegn (det skyldes ikke forkert charset)
Avatar billede repox Seniormester
29. august 2013 - 21:30 #5
Du er ikke særlig specifik eller konkret om det du oplever - der er noget du gør forkert, men uden andet information end 'det virker ikke', kan vi ikke rigtig gøre andet end at gætte.

Helt basalt, bør dette virke:

$xml = new SimpleXMLElement(file_get_contents('https://trustbox.trustpilot.com/r/mackabler.dk.xml'));
Avatar billede xpresand Nybegynder
29. august 2013 - 21:41 #6
Ja, det bør virke :)

Jeg vil nu mene at jeg er ret specifik, eftersom at den fejl jeg får står i mit første indlæg, mere konkret en min fejl og kode kan det ikke blive.
Avatar billede repox Seniormester
29. august 2013 - 21:45 #7
Fejlen i dit første indlæg er ret tydelig - det du fodrer SimpleXML med er ikke XML. Så fejlen må opstå når du henter XML'en. Det bliver du nød til at få uddybet.
Avatar billede jakobdo Ekspert
29. august 2013 - 21:52 #8
Jeg vil give repox ret: Du er ikke særlig specifik i dit "problem"
En gode måde, kunne jo netop være at skrive:

Jeg har koden:
<?php
$url = 'https://trustbox.trustpilot.com/r/mackabler.dk.xml';
$data = file_get_contents($url);
print $data;
$xml = simplexml_load_string($data);
print_r($xml);
?>

Men det giver mig følgende output:

‹Í\moɲþ¼Hûšé^ÐqüîÄñ† @ìfaᲺ:::jgÚãɼª§Çl~Hçðá|ó»OUÍŒvYÛØÙ‹„¶»kzºŸªzê¥9~ü[©™±y&ö:Íöž2ÉUê‰ÿh¯p"ýážz|òý½c›ç‹q]‡™I>Ò.íMËF­Öû÷ï›ï{ÍÔú­n»=hâÇj Ën s¶È]D©kza Ò[{x t5ÕIb"|øîØ.2'oë¡j_Åú*ÔãÈXL;nÉIxòEùÇ-þz&¿²Aæð"Ë'ß\^ª‰1ÞqkyM¸J³øSw‚w:RKsN[—MuEŠΕ5¹±3ã5[‹I$"ˆµÏËüQµLþ6_^éU·r§]pÕʧÚ¯å²E©Ÿþ ÔÌÿ¸E........

Så ville det give "eksperterne" meget bedre viden og dermed give dig et bedre svar fra start.
Jeg kan dog godt se det ikke er korrekt XML der kommer retur, og hvorfor, kan jeg simpelthen ikke gennemskue.
Avatar billede jakobdo Ekspert
29. august 2013 - 22:09 #9
Så lærte jeg faktisk noget. :o)

XML filen leveret gzip'et.

Så dette trick løser det:

<?php
$url = 'compress.zlib://https://trustbox.trustpilot.com/r/mackabler.dk.xml';
$data = file_get_contents($url);
$xml = simplexml_load_string($data);
print_r($xml);
?>

se "prefix" på url'en.

Svar fundet her: http://stackoverflow.com/questions/12607470/download-gzip-xml-file-in-php
Avatar billede jakobdo Ekspert
29. august 2013 - 22:10 #10
Sidste skulle have været et svar.
Avatar billede repox Seniormester
29. august 2013 - 22:45 #11
Arh, selvfølgelig ;-)
Avatar billede xpresand Nybegynder
30. august 2013 - 09:20 #12
Tak, det virkede.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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