Lid |
|
Beste,
Mijn xmlparser geeft een fatale error en ik kom er niet achter waardoor, volgens mij is het namelijk prima.
<?php
// $file van de pagina zelf!
#$xml_file = "../xml/top10.xml";
$xml_parser = xml_parser_create();
if (!($fp = fopen($xml_file, "r"))) {
die("could not open XML input");
}
$data = fread($fp, filesize($xml_file));
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);
}
}
// om de array af te drukken gebuik:
/*echo "<pre>";
print_r($params);
echo "</pre>;*/
?>
<?php // $file van de pagina zelf! #$xml_file = "../xml/top10.xml"; if (!($fp = fopen($xml_file, "r"))) { die("could not open XML input"); } foreach ($vals as $xml_elem) { if ($xml_elem['type'] == 'open') { 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\'];'; } } // om de array af te drukken gebuik: /*echo "<pre>"; print_r($params); echo "</pre>;*/ ?>
de error is:Citaat: ERRNO: 8
TEXT: Undefined offset: 1
LOCATION: C:webserverwwwDwww.djclone.nlmain_phpxml_parser.php, line21
dat zou dit stuk code moeten zijn:
if (array_key_exists('attributes',$xml_elem)) {
list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
}
list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']); }
Erg bedankt voor het meedenken alvast
|