login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[OPGELOST] xml-parser error

Offline Explosive - 27/07/2006 17:10 (laatste wijziging 27/07/2006 22:01)
Avatar van ExplosiveLid Beste,

Mijn xmlparser geeft een fatale error en ik kom er niet achter waardoor, volgens mij is het namelijk prima.

  1. <?php
  2. // $file van de pagina zelf!
  3.  
  4. #$xml_file = "../xml/top10.xml";
  5. $xml_parser = xml_parser_create();
  6.  
  7. if (!($fp = fopen($xml_file, "r"))) {
  8. die("could not open XML input");
  9. }
  10.  
  11. $data = fread($fp, filesize($xml_file));
  12. fclose($fp);
  13. xml_parse_into_struct($xml_parser, $data, $vals, $index);
  14. xml_parser_free($xml_parser);
  15.  
  16. $params = array();
  17. $level = array();
  18. foreach ($vals as $xml_elem) {
  19. if ($xml_elem['type'] == 'open') {
  20. if (array_key_exists('attributes',$xml_elem)) {
  21. list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
  22. } else {
  23. $level[$xml_elem['level']] = $xml_elem['tag'];
  24. }
  25. }
  26. if ($xml_elem['type'] == 'complete') {
  27. $start_level = 1;
  28. $php_stmt = '$params';
  29. while($start_level < $xml_elem['level']) {
  30. $php_stmt .= '[$level['.$start_level.']]';
  31. $start_level++;
  32. }
  33. $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
  34. eval($php_stmt);
  35. }
  36. }
  37.  
  38. // om de array af te drukken gebuik:
  39. /*echo "<pre>";
  40. print_r($params);
  41. echo "</pre>;*/
  42. ?>


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:
  1. if (array_key_exists('attributes',$xml_elem)) {
  2. list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
  3. }


Erg bedankt voor het meedenken alvast 

2 antwoorden

Gesponsorde links
Offline Tuinstoel - 27/07/2006 18:03
Avatar van Tuinstoel PHP expert Het 2e argument (dat is 1, want arrays beginnen met 0), bestaat niet, of zoals in het script gezegd is "ongedefineerd". Het zit dus in regel 21, en daar zie ik de functie list() staan. Volgensmij - werk nooit met list - is het aantal argumenten bij de eerste array niet gelijk aan het aantal argumenten van $extra o.i.d?
Offline Explosive - 27/07/2006 21:57
Avatar van Explosive Lid $extra was nergens gedefineerd. Nu ik die verwijderd heb werkt het prima. Bedankt:!:
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.185s