Yea I figured it out and made the following code:
<?php
$element = array();
$all = array();
$parser = xml_parser_create();
xml_set_element_handler($parser, 'start_element', 'end_element');
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_set_character_data_handler($parser, 'handler');
$fp = @fopen('data.xml', 'r');
$xmlsource = fread($fp, 4096);
if(!xml_parse($parser, $xmlsource, 1)) {
$line = xml_get_current_line_number($parser);
$error = xml_error_string(xml_get_error_code($parser));
die ("XML error: $error in parser at line $line");
}
function start_element($parser, $name, $attribs) {
global $cur;
$cur = $name;
}
function end_element($parser, $name) {
global $element, $all;
$all[] = $element;
}
function handler($parser, $data) {
global $cur, $element;
switch($cur) {
case 'main':
$element[$cur] = $data;
break;
}
}
while(list($key, $val) = each($element)) {
echo "$key => $val<br>";
}
?>
but.. now the problem is that... the last two lines only prints the $key and $val is always empty!! I donno why..!!