All pastes #614083 Raw Edit

Thumann

public php v1 · immutable
#614083 ·published 2007-07-11 10:29 UTC
rendered paste body
<?php   //Where is our xml?$url = "http://somehost.somedomain.com/xmlfile.xml";//Make sure we use the correct user agent so we acutally get valid xml back$user_agent = "Mozilla/5.0 Firefox/2.0.0.1";//Our curl functionfunction curl_string ($url,$user_agent){       $ch = curl_init();        curl_setopt ($ch, CURLOPT_URL, $url);        curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);       curl_setopt ($ch, CURLOPT_TIMEOUT, 120);       $result = curl_exec ($ch);       curl_close($ch);       return $result;}//Fetch it $xml = curl_string($url_page,$user_agent);//Our XML parse classclass xml2Array {      var $arrOutput = array();   var $resParser;   var $strXmlData;      function parse($strInputXML) {              $this->resParser = xml_parser_create ();           xml_set_object($this->resParser,$this);           xml_set_element_handler($this->resParser, "tagOpen", "tagClosed");                      xml_set_character_data_handler($this->resParser, "tagData");                  $this->strXmlData = xml_parse($this->resParser,$strInputXML );           if(!$this->strXmlData) {               die(sprintf("XML error: %s at line %d",           xml_error_string(xml_get_error_code($this->resParser)),           xml_get_current_line_number($this->resParser)));           }                                      xml_parser_free($this->resParser);                      return $this->arrOutput;   }   function tagOpen($parser, $name, $attrs) {       $tag=array("name"=>$name,"attrs"=>$attrs);        array_push($this->arrOutput,$tag);   }      function tagData($parser, $tagData) {       if(trim($tagData)) {           if(isset($this->arrOutput[count($this->arrOutput)-1]['tagData'])) {               $this->arrOutput[count($this->arrOutput)-1]['tagData'] .= $tagData;           }            else {               $this->arrOutput[count($this->arrOutput)-1]['tagData'] = $tagData;           }       }   }      function tagClosed($parser, $name) {       $this->arrOutput[count($this->arrOutput)-2]['children'][] = $this->arrOutput[count($this->arrOutput)-1];       array_pop($this->arrOutput);   }}//Create the new XML object so we can make our array $objXML = new xml2Array();//Create the array from our xml source by using the parser $arrOutput = $objXML->parse($xml);//Echo the arrayecho '<pre>';print_r($arrOutput);echo '</pre>';//Define a few variables to use further on..$name = $value['attrs']['NAME'];$class = $value['attrs']['CLASS'];echo 'Hi, my name is '.$name.', and I attent '.$class;?>