note 42650 added to ref.xml
| From: | julianoatsetor4dotcom at rn2 dot php dot net | Date: | Tue, 25 May 2004 13:56:19 +0000 |
| Subject: | note 42650 added to ref.xml | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-70055@lists.php.net to get a copy of this message | ||
An update of rcotta at ig dot com dot br. The function below will not overwrite an existent element.
<?
function makeXMLTree($file) {
$open_file = fopen($file, "r");
$data = fread($open_file, filesize($file));
$ret = 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);
$hash_stack = array();
$a=0;
foreach ($values as $key => $val) {
switch ($val['type']) {
case 'open':
array_push($hash_stack, $val['tag']);
break;
case 'close':
array_pop($hash_stack);
break;
case 'complete':
array_push($hash_stack, $val['tag']);
// uncomment to see what this function is doing
/* echo("\$ret[$a][" . implode($hash_stack, "][") . "] =
'{$val[value]}';\n");
$a++;*/
eval("
\$ret[\$a][" . implode($hash_stack, "][") . "] =
'{$val[value]}';
\$a++;");
array_pop($hash_stack);
break;
}
}
return $ret;
}
$res = makeXMLTree($xml_file);
print_r($res);
?>
----
Manual Page -- http://www.php.net/manual/en/ref.xml.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+42650
Delete -- http://master.php.net/manage/user-notes.php?action=delete+42650&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+42650&report=yes
Search -- http://master.php.net/manage/user-notes.php