note 44051 deleted from function.domxml-open-mem by sobak
| From: | sobak@php.net | Date: | Tue, 22 Nov 2016 03:42:02 +0000 |
| Subject: | note 44051 deleted from function.domxml-open-mem by sobak | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-207418@lists.php.net to get a copy of this message | ||
Note Submitter: Carl Wurtz
----
A recursive function that parses XML into objects:
<?php
$xmlstg = '<?xml version="1.0"?';
$xmlstg .= '><candy><anatomically_shaped><head_to_bite_off>chocolate
bunnies</head_to_bite_off><headless>gummi
worms</headless></anatomically_shaped></candy>';
$dom = domxml_open_mem($xmlstg);
$root = $dom->document_element();
$root->name = '$candy';
function parse_node($node) {
global $candy;
if ($node->has_child_nodes()) {
foreach($node->child_nodes() as $n) {
if ($n->node_name() == '#text') {
eval("$node->name=\"" . $n->node_value() . "\";");
}
else {
$n->name = $node->name . '->' . $n->node_name();
parse_node($n);
}
}
}
}
parse_node($root);
echo $candy->anatomically_shaped->head_to_bite_off;
// echos "chocolate bunnies"
?>