$newnode = $frag->clone_node(true);
$node->append_child($newnode);
XML_Template_process($newnode, $instance, $clean);
-
- # FIXME: clean
+ if ($clean) {
+ XML_Template_clean($newnode);
+ }
}
# remove all the <fragment> tags
return;
}
- # FIXME: clean
+ if ($clean) {
+ XML_Template_clean($node);
+ }
+}
+
+function XML_Template_clean($node)
+{
+ if ($node->node_type() == XML_ELEMENT_NODE) {
+ if ($node->namespace_uri() != 'http://template.sesse.net/') {
+ return;
+ }
+
+ # as this is a dummy node, we want to remove it and move everything further up
+ # after we've done any required replacements
+ $doc = $node->owner_document();
+ $parent = $node->parent_node();
+ foreach ($node->child_nodes() as $child) {
+ $node->remove_child($child);
+ $node->insert_before($child, $node);
+ }
+ $parent->remove_child($node);
+ }
}
function is_associative_array($arr)