Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2005

Läsa en XML-fil med PHP

Jag har lite bök med att hämta data ur xml-filer. Har lyckats skapa xml-filerna via php och de ser ut såhär:

<content> <title>Testar</title> <message>Testar att skriva och läsa xml</message> </content>

För att läsa använder jag detta:

$post_name = "xml-filen"; $xmlstr = include('note/'.$post_name.'.xml'); $xml = new SimpleXMLElement($xmlstr); echo $xml->content->message;

Men har en känsla av att jag inte riktigt gör på rätt sätt. Får unexpected T_STRING på rad 1, det i xml:en antar jag. Är det så att den inte är formaterad på rätt sätt bara eller kan jag inte använda include på det sättet? Hjälp uppskattas!

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Maj 2007

Ändra till:

... $xmlstr = file_get_contents('note/' . $post_name . '.xml'); ...

include() försöker nämligen evaluera koden i den inkluderade filen, det du egentligen vill göra är att läsa in den. Då använder man med fördel file_get_contents().

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2005
Citat:

Ursprungligen inskrivet av bjornie
Ändra till:

... $xmlstr = file_get_contents('note/' . $post_name . '.xml'); ...

include() försöker nämligen evaluera koden i den inkluderade filen, det du egentligen vill göra är att läsa in den. Då använder man med fördel file_get_contents().

Tack för bra svar! Det som dock händer nu är att jag möts av en blank sida.
är $xml->content->message; rätt sätt att leta upp innehållet när jag använder file_get_contents() till SimpleXML?

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Maj 2007

Är elementet 'content' ditt rotelement?

<?php $file = 'file-name'; $xml = simplexml_load_file('note/' . $file . '.xml'); echo "Titel: " . $xml->title; echo "Meddelande: " . $xml->message;

Kanske löser det i så fall.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2005

Tack bjornie, det var det som spökade!

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com