]> git.sesse.net Git - xml-template/commitdiff
Utilize the undocumented (!!) namespace support.
authorsgunderson@bigfoot.com <>
Fri, 11 Aug 2006 23:32:12 +0000 (01:32 +0200)
committersgunderson@bigfoot.com <>
Fri, 11 Aug 2006 23:32:12 +0000 (01:32 +0200)
xml-template.php

index eb41c10c3d69e82cdc2a6a4106989f3511a2c4e4..0de8409acca8f313b49644cfcc5489ce0ece9713 100644 (file)
@@ -7,7 +7,7 @@ function XML_Template_process_file($filename, $obj, $clean = 1)
        return $doc;
 }
 
-function XML_Template_process($node, $obj, $clean = 1, $nsup = array())
+function XML_Template_process($node, $obj, $clean = 1)
 {
        if (!is_array($obj)) {                                # overwrite
                foreach ($node->child_nodes() as $child) {
@@ -25,8 +25,7 @@ function XML_Template_process($node, $obj, $clean = 1, $nsup = array())
                                $attrs = $child->attributes();
                                if ($attrs != null) {
                                        foreach ($child->attributes() as $attr) {
-                                               # FIXME: xmlns, nsuri?
-                                               if ($attr->name() == 'id') {
+                                               if ($attr->namespace_uri() == 'http://template.sesse.net/' && $attr->name() == 'id') {
                                                        $id = $attr->value();
                                                        if ($clean) {
                                                                $child->remove_attribute($attr->name());
@@ -48,14 +47,14 @@ function XML_Template_process($node, $obj, $clean = 1, $nsup = array())
                                                continue;
                                        }
                                        if ($key == $tag || ($id != null && $key == ('#'.$id))) {
-                                               XML_Template_process($child, $obj[$key], $clean, $nsup);
+                                               XML_Template_process($child, $obj[$key], $clean);
                                                $processed = true;
                                        }
                                }
                        }
 
                        if (!$processed) {
-                               XML_Template_process($child, $obj, $clean, $nsup);
+                               XML_Template_process($child, $obj, $clean);
                        }
                }
        } else {                                                # repeat
@@ -70,7 +69,7 @@ function XML_Template_process($node, $obj, $clean = 1, $nsup = array())
                foreach ($obj as $instance) {
                        $newnode = $frag->clone_node(true);
                        $node->append_child($newnode);
-                       XML_Template_process($newnode, $instance, $clean, $nsup);
+                       XML_Template_process($newnode, $instance, $clean);
 
                        # FIXME: clean
                }