note 45700 added to function.xml-parse
| From: | randlem at gmail dot com | Date: | Wed, 15 Sep 2004 15:43:34 +0000 |
| Subject: | note 45700 added to function.xml-parse | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-76739@lists.php.net to get a copy of this message | ||
Here's a handy way to generate a tree that can be can be decended easily.
<?php
$file = 'xmltest.xml';
$tag_tree = array();
$stack = array();
class tag {
var $name;
var $attrs;
var $children;
function tag($name, $attrs, $children) {
$this->name = $name;
$this->attrs = $attrs;
$this->children = $children;
}
}
function startTag($parser, $name, $attrs) {
global $tag_tree, $stack;
$tag = new tag($name,$attrs,'');
array_push($stack,$tag);
}
function endTag($parser, $name) {
global $stack;
$stack[count($stack)-2]->children[] = $stack[count($stack)-1];
array_pop($stack);
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startTag", "endTag");
$data = xml_parse($xml_parser,file_get_contents($file));
if(!$data) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
xml_parser_free($xml_parser);
print("\n");
print_r($stack);
print("\n");
?>
----
Manual Page -- http://www.php.net/manual/en/function.xml-parse.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+45700
Delete -- http://master.php.net/manage/user-notes.php?action=delete+45700&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+45700&report=yes
Search -- http://master.php.net/manage/user-notes.php