Avatar billede dennism Nybegynder
10. marts 2007 - 11:31 Der er 8 kommentarer og
1 løsning

PHP: XML, Unicode?

Jeg forsøger at parse fra dette XML-dokument:
http://www.mtve.com/feeds/xmlserver.php?Object=grids&countryid=3&date=2007-03-10

Jeg gør følgende:
$xml = simplexml_load_file($url);
foreach($xml->Base as $base) {

Men når jeg udskriver teksten fra $base-knuden ser de danske specialtegn meget "sjove ud". Hvordan kan jeg få sat det rette unicode?
Avatar billede blackscorpion Nybegynder
10. marts 2007 - 16:00 #1
prøv den her: $xml = '<?xml version="1.0" encoding="UTF-8" ?>

hentet herfra: http://dk2.php.net/manual/da/function.simplexml-load-file.php
Avatar billede dennism Nybegynder
10. marts 2007 - 16:08 #2
jeg har forsøgt dette:

$url = "http://www.mtve.com/feeds/xmlserver.php?Object=grids&countryid=3&date=".$_GET['date'];
$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= simplexml_load_file($url);

men det virker desværre ikke :(
Avatar billede blackscorpion Nybegynder
10. marts 2007 - 16:12 #3
prøv at fjerne . foran = på den sidste $xml

altså:

$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
$xml = simplexml_load_file($url);
Avatar billede dennism Nybegynder
10. marts 2007 - 16:15 #4
så bliver den jo bare overskrevet, når den henter XML-filen?
Avatar billede blackscorpion Nybegynder
10. marts 2007 - 16:18 #5
det er hvad eksemplet gør på dk2.php.net lol så prøv, kan være det virker. ;)
Avatar billede blackscorpion Nybegynder
10. marts 2007 - 16:19 #6
den user comment jeg har snuppet den fra ser sådan her ud:

To correctly extract a value from a CDATA just make sure you cast the SimpleXML Element to a string value by using the cast operator:

$xml = '<?xml version="1.0" encoding="UTF-8" ?>
<rss>
  <channel>
      <item>
          <title><![CDATA[Tom & Jerry]]></title>
      </item>
  </channel>
</rss>';

$xml = simplexml_load_string($xml);

// echo does the casting for you
echo $xml->channel->item->title;

// but vardump (or print_r) not!
var_dump($xml->channel->item->title);

// so cast the SimpleXML Element to 'string' solve this issue
var_dump((string) $xml->channel->item->title);

Above will output:

Tom & Jerry

object(SimpleXMLElement)#4 (0) {}

string(11) "Tom & Jerry"
Avatar billede dennism Nybegynder
10. marts 2007 - 16:24 #7
Det hjælper desværre ikke noget :(
Avatar billede blackscorpion Nybegynder
10. marts 2007 - 16:26 #8
så ved jeg ikke du. :(
Avatar billede dennism Nybegynder
12. marts 2007 - 19:37 #9
Svaret var:
$value = utf8_decode($value);
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