XML parsing fra ekstern fil i PHP

XML parsing fra ekstern fil i PHP

Innleggav Petter89 » fre 17.04.2009 18:11

Hei,
Jeg har sett mye på XML parsing med PHP, men jeg har et lite problem.

Dette er skriptet mitt:
Kode: Merk alt
<?php

$xml_data = '<news_list max_id="101">
<news pref="" pos="11" id="100" data="27%2F03%2F2009" titolo="UltraMusic Festival" locale="Miami (USA)" />
<news pref="" pos="11" id="100" data="27%2F03%2F2009" titolo="Mansion" locale="Miami (USA)" />
<news pref="" pos="11" id="100" data="03%2F04%2F2009" titolo="El San Juan Hotel" locale="San Juan (PRI)" />
<news pref="" pos="11" id="100" data="04%2F04%2F2009" titolo="Teatro La Fiesta" locale="Santo Domingo (DOM)" />
<news pref="" pos="11" id="100" data="22%2F06%2F2009" titolo="SHM &amp; Friends Mondays @ Pacha" locale="Ibiza (E)" />
<news pref="" pos="11" id="100" data="10%2F07%2F2009" titolo="Oxegen Festival" locale="Punchestown (IRL)" />
<news pref="" pos="11" id="100" data="12%2F08%2F2009" titolo="Green Beat Festival" locale="Pag Island (HR)" />
<news pref="" pos="11" id="100" data="29%2F08%2F2009" titolo="Creamfields" locale="Liverpool (UK)" />
<news pref="" pos="11" id="100" data="30%2F08%2F2009" titolo="Creamfields" locale="Liverpool (UK)" />
</news_list>';


class SimpleXMLElementExtended extends SimpleXMLElement{
   
   public function getAttribute($name){
      foreach($this->attributes() as $key=>$val){
         if($key == $name){
            return (string)$val;
         }// end if
      }// end foreach
   }// end function getAttribute
   
   public function getChildrenCount(){
      $cnt = 0;
      foreach($this->children() as $node){
         $cnt++;
      }// end foreach
      return (int)$cnt;
   }// end function getChildrenCount
   
}

   $xml2 = new SimpleXMLElementExtended($xml_data);
   
   print('<strong>NUMBER OF GIGS</strong>:  '.$xml2->getChildrenCount());
   print('<br /><br />');

$i = 0;
while ($i < $xml2->getChildrenCount()){

   print('<strong>GIG TITLE</strong>:  '.$xml2->news[$i]->getAttribute('titolo'));
   print('<br />');

   print('<strong>GIG DATE</strong>:  '.$xml2->news[$i]->getAttribute('data'));
   print('<br /><br />');
   $i++;
   
}

?>


Koden over fungerer, men som dere ser så er XMLfilen oppgitt i en string. Jeg vil at XMLfilen skal hentes fra en ekstern fil. ala: http://www.eksempel.com/tour.xml. Den eksterene XMLfilen inneholder nøyaktig det som er vist over.

Noen forslag?
medlem i 189 måneder
 

Re: XML parsing fra ekstern fil i PHP

Innleggav ArneArts » fre 17.04.2009 18:16

Kode: Merk alt
$xml_data = file_get_contents('http://your.mom.com/something.xml');

Brukerens avatar
medlem i 239 måneder
 

Re: XML parsing fra ekstern fil i PHP

Innleggav Petter89 » fre 17.04.2009 18:20

Det var ikke verre nei. Jeg var skråsikker på at jeg hadde prøvd den løsningen, men så feil kan man ta :)
Takk så mye for hjelpen! :-P
medlem i 189 måneder
 

Re: XML parsing fra ekstern fil i PHP

Innleggav ArneArts » fre 17.04.2009 18:24

Det er stort sett så enkelt, ja, men det er ikke alle servere som støtter bruk av file_get_contents() over http. Hvis det ikke funker kan du bruke curl:
Kode: Merk alt
$url = 'http://your.mom.com/something.xml';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$xml = curl_exec($ch);

Brukerens avatar
medlem i 239 måneder
 

Re: XML parsing fra ekstern fil i PHP

Innleggav datagutten » søn 07.06.2009 22:05

Om du ikke vet om det, ta kikk på SimpleXML. Veldig nyttig når man driver med xml filer. Det er også en egen funksjon der for å laste inn fra ekstern fil.

Brukerens avatar
medlem i 220 måneder
 


Returner til PHP



Hvem er i Forumene

Registrerte brukere: Google [Bot]



cron