Forum Moderators: coopster

Message Too Old, No Replies

Parsing XML Feed without File functions

         

dcampbell

11:39 am on Nov 24, 2004 (gmt 0)

10+ Year Member



Hi folks

I've written a php script to parse a remote XML file. This works fine on my test server however, the chap I've written the script for is using a hosting service which has disabled the file functions. Is there any way of parsing the xml file without access to the File or Curl functions?

Script is below:


if (!($fp=@fopen("http://server/xmlfeed.xml", "r"))) die ("Couldn't open XML.");
$count=0;
$element=array();
$state='';

function startElementHandler ($parser,$name,$attrib){
global $count;
global $element;
global $state;

switch ($name) {
case $name=="SELECTION" : {
$element[$count]["child1"] = $attrib["child1"];
$element[$count]["child2"] = $attrib["child2"];
$element[$count]["child3"] = $attrib["child3"];
$element[$count]["child4"] = $attrib["child4"];
$element[$count]["child5"] = $attrib["child5"];
break;
}
default : {$state=$name;break;}
}
}

function endElementHandler ($parser,$name){
global $count;
global $element;
if($name=="SELECTION") {$count++;}
}

function characterDataHandler ($parser, $data) {
global $count;
global $element;
}

if (!($xml_parser = xml_parser_create())) die("Couldn't create parser.");
xml_set_element_handler( $xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler( $xml_parser, "characterDataHandler");

while( $data = fread($fp, 4096)){
if(!xml_parse($xml_parser, $data, feof($fp))) {
break;}
}
xml_parser_free($xml_parser);

Thanks

coopster

11:56 pm on Dec 6, 2004 (gmt 0)

WebmasterWorld Administrator 10+ Year Member



Welcome to WebmasterWorld, dcampbell.

Are the DOM Functions [php.net] an option?