<?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;?>