--- /dev/null
+<?php
+require('xml-template.php');
+
+$doc = XML_Template_process_file('included.xml', array(
+ 'color' => 'red'
+));
+$master = XML_Template_process_file('master.xml', array(
+ 'title' => 'Main HTML title',
+ 'h1' => 'Nice heading here',
+ 'contents' => $doc
+));
+print $master->dump_mem();
+?>
function XML_Template_process($node, $obj, $clean = 1)
{
- if (!is_array($obj)) { # overwrite
+ if (is_a($obj, 'domnode')) { # overwrite
+ foreach ($node->child_nodes() as $child) {
+ $node->remove_child($child);
+ }
+
+ if (is_a($obj, 'domdocument')) {
+ $obj = $obj->document_element();
+ }
+
+ $newobj = $obj->clone_node(true);
+ $node->append_child($newobj);
+ } else if (!is_array($obj)) { # overwrite
foreach ($node->child_nodes() as $child) {
$node->remove_child($child);
}
$doc = $node->owner_document();
$node->add_child($doc->create_text_node($obj));
- # handle overwrite with a DOM object here
} else if (is_associative_array($obj)) { # substitute
foreach ($node->child_nodes() as $child) {
$processed = false;