Hi, I am having a couple of difficulties with a script to parse XML. This may well be because my 16 month kid was up all night, but I'm banging my head against a wall right now.
The script quite easily extracts one of the entries listed under <DATA_2> but doesnt list the other. This is my first look into parsing XML, so I am not sure of the terminology :-). How can I have both entries in this XML file parsed to an array that I can use to build a table. (I just really need the array, I can take it from there). Thanks ! Phil Here's my code (please let me know if I'm missing anything really simple): ============================ == PHP CODE ============================ <? $data = file_get_contents('db_list.xml'); $ret = array(); $hash_stack = array(); $parser = xml_parser_create(); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); xml_parse_into_struct($parser,$data,$values,$tags); xml_parser_free($parser); foreach ($values as $key => $val) { if($val['type'] == "open") { array_push($hash_stack, $val['tag']); } elseif($val['type'] == "close") { array_pop($hash_stack); } elseif($val['type'] == "complete") { array_push($hash_stack, $val['tag']); eval("\$ret[" . implode($hash_stack, "][") . "] = '{$val[value]}';"); array_pop($hash_stack); } } print_r($ret); ?> ============================ == XML CODE ============================ <?xml version="1.0"?> <DATA_DB> <LIST_2> <DATA_2> <DB_KEY>09011234</DB_KEY> <LIST_1> <G_1> <NAME>BLOGGS, JOE</NAME> <LIST_15> <DATA_15> <ADDRESS>15 MAIN STREET</ADDRESS> <CITY_STATE>MAINLAND WS</CITY_STATE> <ZIP>99999</ZIP> </DATA_15> </LIST_15> </G_1> </LIST_1> </DATA_2> <DATA_2> <DB_KEY>09011235</DB_KEY> <LIST_1> <G_1> <NAME>BROOK, CURTIS</NAME> <LIST_15> <DATA_15> <ADDRESS>16 MAIN STREET</ADDRESS> <CITY_STATE>MAINLAND WS</CITY_STATE> <ZIP>99999</ZIP> </DATA_15> </LIST_15> </G_1> </LIST_1> </DATA_2> </LIST_2> </DATA_DB> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php