lars91 Skrevet 13. juli 2010 Del Skrevet 13. juli 2010 (endret) Hei, jeg skal ha hentet informasjon fra et en xml fil som er generert via php. Jeg prøver å hente informasjonen som er generert på denne siden http://dx.no/ebillett/dx_forestillinger.php?p_id=1005&type=XML for å kunne vise dette på hjemmesiden min. Det jeg ønsker er å hente ut teksten som ligger i elementet MovieTitle, men jeg får det ikke til å fungere med det scriptet jeg bruker nå. Problemet er at alt innholdet i elementene blir skrevet ut, men jeg ønsker kun å skrive ut innholdet fra noen elementer. Kan noen ta en titt på det og se hva som er feilen. <?php //Initialize the XML parser $parser=xml_parser_create(); //Function to use at the start of an element function start($parser,$element_name,$element_attrs) { switch($element_name) { case "MovieTitle": echo ""; break; case "ShowDate": echo ""; break; case "TicketURL": echo ""; break; case "ShowTime": echo ""; } } //Function to use at the end of an element function stop($parser,$element_name) { echo "<br />"; } //Function to use when finding character data function char($parser,$data) { echo $data; } //Specify element handler xml_set_element_handler($parser,"start","stop"); //Specify data handler xml_set_character_data_handler($parser,"char"); //Open XML file $fp=fopen("http://dx.no/ebillett/dx_forestillinger.php?p_id=1005&type=XML","r"); //Read data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } //Free the XML parser xml_parser_free($parser); ?> Tusen takk Endret 14. juli 2010 av lars91 Lenke til kommentar
MikkelRev Skrevet 14. juli 2010 Del Skrevet 14. juli 2010 Glem det eksempelet du har kopiert fra en random nettside. Lag din egen kode for det heller. Ta en titt i denne tråden: https://www.diskusjon.no/index.php?showtopic=1238094 Lenke til kommentar
lars91 Skrevet 14. juli 2010 Forfatter Del Skrevet 14. juli 2010 (endret) Det ser bra ut. Problemet mitt er at jeg med denne ikke klarer å hente ut noen verdier. Kan godt være at det er mine manglende kunnskaper, men hadde vært strålende med litt ekspertisehjelp Jeg prøvde med koden som du linket til og prøvde å få dette til å fungere uten veldig stort hell. Jeg får printet ut arrayet med [MovieTitle] => SimpleXMLElement Object, men jeg får ikke noe data med foreach løkken. <?php $xml=simplexml_load_file("http://dx.no/ebillett/dx_forestillinger.php?p_id=1005&type=XML"); echo "<pre>"; print_r($xml); echo "</pre>"; foreach($xml->channel->item as $property=>$value) { echo "<br>data source: ".$value->MovieTitle; echo "<br>message: ".$value->TicketURL; } ?> Endret 14. juli 2010 av lars91 Lenke til kommentar
MikkelRev Skrevet 14. juli 2010 Del Skrevet 14. juli 2010 Det er ikke rart om du copy og paster. Feks er det ingenting i din xmlfil som heter "item", men "Show" istedet. Jeg kan det ikke selv, men får det alltid til ved å prøve meg frem. echo "<pre>"; print_r($xml); echo "</pre>; er en god venn. Der ser du om du skal bruke objekt->property (for egenskap, evt underegenskap) eller property["elementnavn"] for arrays. Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 16. juli 2010 Del Skrevet 16. juli 2010 (endret) Ut i fra den XML-en du har angitt: foreach($xml->Show as $show) { echo "Tittel: ".$show->MovieTitle."<br />"; echo "URL: ".$show->TicketURL."<br />"; } Endret 16. juli 2010 av Slettet-rXRozPkg Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå