From d9da21a7da7c65be94050f9beb6dd18cba03a322 Mon Sep 17 00:00:00 2001 From: "sgunderson@bigfoot.com" <> Date: Sat, 12 Aug 2006 02:00:35 +0200 Subject: [PATCH] Add include support to the PHP version. --- include.php | 13 +++++++++++++ xml-template.php | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 include.php diff --git a/include.php b/include.php new file mode 100644 index 0000000..a4b0ab3 --- /dev/null +++ b/include.php @@ -0,0 +1,13 @@ + 'red' +)); +$master = XML_Template_process_file('master.xml', array( + 'title' => 'Main HTML title', + 'h1' => 'Nice heading here', + 'contents' => $doc +)); +print $master->dump_mem(); +?> diff --git a/xml-template.php b/xml-template.php index 5c3d2b4..48837c7 100644 --- a/xml-template.php +++ b/xml-template.php @@ -9,13 +9,23 @@ function XML_Template_process_file($filename, $obj, $clean = 1) 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; -- 2.39.2