I'm trying to suck xml out from a published page, put it into an array structure thats useful and then insert the data into a database.
I would truly appreciate it if someone could help me sort out the following:
$data=fread(fopen('http://cms-stu-iis.gre.ac.uk/mk05/dotnet/staff.xml','r'),4096);
//fclose($fp);
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$params = array();
$level = array();
foreach ($vals as $xml_elem) {
if ($xml_elem['type'] == 'open') {
if (array_key_exists('attributes',$xml_elem)) {
list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
} else {
$level[$xml_elem['level']] = $xml_elem['tag'];
}
}
if ($xml_elem['type'] == 'complete') {
$start_level = 1;
$php_stmt = '$params';
while($start_level < $xml_elem['level']) {
$php_stmt .= '[$level['.$start_level.']]';
$start_level++;
}
$php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
eval($php_stmt);
}
}
echo "<pre>";
print_r ($params);
echo "</pre>";
[code=php]
its supposed to read all the elements into an array but instead it does this:
Array
(
[urn:schemas-microsoft-com:officedata] => Array
(
[STAFF] => Array
(
[STAFFID] => 34
[STAFFFNAME] => Kerry
[STAFFSNAME] => Roberts
[STAFFPHONE] => 9969
)
)
)
Only the first instance of staff is read into the array, not all instances.
Please someone help. You can go out with my sister if you help me..... >:)
captain_kirk@earthling.net