<?php$file="http://www.URL.com/file.XML";$xml_parser = xml_parser_create();$handle = fopen($file, "rb");$contents = '';while (!feof($handle)) { $data .= fread($handle, 8192);}fclose($handle);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>";?>
This code is from http://www.php.net/manual/en/function.xml-...into-struct.phplet this one be the input<?xml version="1.0"?><moldb> <molecule> <name>Alanine</name> <symbol>ala</symbol> <code>A</code> <type>hydrophobic</type> </molecule> <molecule> <name>Lysine</name> <symbol>lys</symbol> <code>K</code> <type>charged</type> </molecule></moldb>The parser not parsing the second <molecule> tag.What should I do to work the code correctly?