rrichards               Sun Oct 26 10:57:02 2003 EDT

  Modified files:              
    /php-src/ext/dom    attr.c cdatasection.c comment.c document.c 
                        documentfragment.c domimplementation.c element.c 
                        entityreference.c node.c php_dom.c php_dom.h 
                        processinginstruction.c text.c xml_common.h 
                        xpath.c 
  Log:
  add interop with simplexml - dom_import_simplexml
  fix cloneNode with elements
  
Index: php-src/ext/dom/attr.c
diff -u php-src/ext/dom/attr.c:1.7 php-src/ext/dom/attr.c:1.8
--- php-src/ext/dom/attr.c:1.7  Sun Aug 24 06:23:43 2003
+++ php-src/ext/dom/attr.c      Sun Oct 26 10:57:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: attr.c,v 1.7 2003/08/24 10:23:43 rrichards Exp $ */
+/* $Id: attr.c,v 1.8 2003/10/26 15:57:01 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -74,9 +74,9 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, (xmlNodePtr) nodep TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, 
(xmlNodePtr)nodep, (void *)intern TSRMLS_CC);
        }
 }
 
Index: php-src/ext/dom/cdatasection.c
diff -u php-src/ext/dom/cdatasection.c:1.4 php-src/ext/dom/cdatasection.c:1.5
--- php-src/ext/dom/cdatasection.c:1.4  Fri Aug 22 11:04:10 2003
+++ php-src/ext/dom/cdatasection.c      Sun Oct 26 10:57:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cdatasection.c,v 1.4 2003/08/22 15:04:10 wez Exp $ */
+/* $Id: cdatasection.c,v 1.5 2003/10/26 15:57:01 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -66,9 +66,9 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, nodep TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, 
(void *)intern TSRMLS_CC);
        }
 }
 /* }}} end dom_cdatasection_cdatasection */
Index: php-src/ext/dom/comment.c
diff -u php-src/ext/dom/comment.c:1.4 php-src/ext/dom/comment.c:1.5
--- php-src/ext/dom/comment.c:1.4       Fri Aug 22 11:04:10 2003
+++ php-src/ext/dom/comment.c   Sun Oct 26 10:57:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: comment.c,v 1.4 2003/08/22 15:04:10 wez Exp $ */
+/* $Id: comment.c,v 1.5 2003/10/26 15:57:01 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -65,9 +65,9 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, nodep TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, 
(xmlNodePtr)nodep, (void *)intern TSRMLS_CC);
        }
 }
 /* }}} end dom_comment_comment */
Index: php-src/ext/dom/document.c
diff -u php-src/ext/dom/document.c:1.31 php-src/ext/dom/document.c:1.32
--- php-src/ext/dom/document.c:1.31     Mon Oct 20 11:50:34 2003
+++ php-src/ext/dom/document.c  Sun Oct 26 10:57:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: document.c,v 1.31 2003/10/20 15:50:34 rrichards Exp $ */
+/* $Id: document.c,v 1.32 2003/10/26 15:57:01 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1164,16 +1164,15 @@
        if (intern != NULL) {
                olddoc = (xmlDocPtr) dom_object_get_node(intern);
                if (olddoc != NULL) {
-                       decrement_node_ptr(intern TSRMLS_CC);
-                       refcount = decrement_document_reference(intern TSRMLS_CC);
+                       php_libxml_decrement_node_ptr((php_libxml_node_object *) 
intern TSRMLS_CC);
+                       refcount = 
php_libxml_decrement_doc_ref((php_libxml_node_object *)intern TSRMLS_CC);
                        if (refcount != 0) {
                                olddoc->_private = NULL;
                        }
                }
                intern->document = NULL;
-               increment_document_reference(intern, docp TSRMLS_CC);
-
-               php_dom_set_object(intern, (xmlNodePtr) docp TSRMLS_CC);
+               php_libxml_increment_doc_ref((php_libxml_node_object *)intern, docp 
TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, 
(xmlNodePtr)docp, (void *)intern TSRMLS_CC);
        }
 }
 /* }}} end dom_document_document */
@@ -1230,7 +1229,7 @@
     xmlParserCtxtPtr ctxt = NULL;
        dom_doc_props *doc_props;
        dom_object *intern;
-       dom_ref_obj *document = NULL;
+       php_libxml_ref_obj *document = NULL;
        int validate, resolve_externals, keep_blanks, substitute_ent;
        int resolved_path_len;
        char *directory=NULL, resolved_path[MAXPATHLEN];
@@ -1352,20 +1351,20 @@
                        docp = (xmlDocPtr) dom_object_get_node(intern);
                        doc_prop = NULL;
                        if (docp != NULL) {
-                               decrement_node_ptr(intern TSRMLS_CC);
+                               php_libxml_decrement_node_ptr((php_libxml_node_object 
*) intern TSRMLS_CC);
                                doc_prop = intern->document->doc_props;
                                intern->document->doc_props = NULL;
-                               refcount = decrement_document_reference(intern 
TSRMLS_CC);
+                               refcount = 
php_libxml_decrement_doc_ref((php_libxml_node_object *)intern TSRMLS_CC);
                                if (refcount != 0) {
                                        docp->_private = NULL;
                                }
                        }
                        intern->document = NULL;
-                       increment_document_reference(intern, newdoc TSRMLS_CC);
+                       php_libxml_increment_doc_ref((php_libxml_node_object *)intern, 
newdoc TSRMLS_CC);
                        intern->document->doc_props = doc_prop;
                }
 
-               php_dom_set_object(intern, (xmlNodePtr) newdoc TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, 
(xmlNodePtr)newdoc, (void *)intern TSRMLS_CC);
 
                RETURN_TRUE;
        } else {
@@ -1710,20 +1709,20 @@
                        docp = (xmlDocPtr) dom_object_get_node(intern);
                        doc_prop = NULL;
                        if (docp != NULL) {
-                               decrement_node_ptr(intern TSRMLS_CC);
+                               php_libxml_decrement_node_ptr((php_libxml_node_object 
*) intern TSRMLS_CC);
                                doc_prop = intern->document->doc_props;
                                intern->document->doc_props = NULL;
-                               refcount = decrement_document_reference(intern 
TSRMLS_CC);
+                               refcount = 
php_libxml_decrement_doc_ref((php_libxml_node_object *)intern TSRMLS_CC);
                                if (refcount != 0) {
                                        docp->_private = NULL;
                                }
                        }
                        intern->document = NULL;
-                       increment_document_reference(intern, newdoc TSRMLS_CC);
+                       php_libxml_increment_doc_ref((php_libxml_node_object *)intern, 
newdoc TSRMLS_CC);
                        intern->document->doc_props = doc_prop;
                }
 
-               php_dom_set_object(intern, (xmlNodePtr) newdoc TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, 
(xmlNodePtr)newdoc, (void *)intern TSRMLS_CC);
 
                RETURN_TRUE;
        } else {
Index: php-src/ext/dom/documentfragment.c
diff -u php-src/ext/dom/documentfragment.c:1.4 php-src/ext/dom/documentfragment.c:1.5
--- php-src/ext/dom/documentfragment.c:1.4      Fri Aug 22 11:04:10 2003
+++ php-src/ext/dom/documentfragment.c  Sun Oct 26 10:57:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: documentfragment.c,v 1.4 2003/08/22 15:04:10 wez Exp $ */
+/* $Id: documentfragment.c,v 1.5 2003/10/26 15:57:01 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -59,9 +59,10 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, nodep TSRMLS_CC);
+               //php_dom_set_object(intern, nodep TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, 
(void *)intern TSRMLS_CC);
        }
 }
 /* }}} end dom_documentfragment_documentfragment */
Index: php-src/ext/dom/domimplementation.c
diff -u php-src/ext/dom/domimplementation.c:1.9 
php-src/ext/dom/domimplementation.c:1.10
--- php-src/ext/dom/domimplementation.c:1.9     Sun Aug 24 06:23:43 2003
+++ php-src/ext/dom/domimplementation.c Sun Oct 26 10:57:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: domimplementation.c,v 1.9 2003/08/24 10:23:43 rrichards Exp $ */
+/* $Id: domimplementation.c,v 1.10 2003/10/26 15:57:01 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -217,8 +217,8 @@
        DOM_RET_OBJ(rv, (xmlNodePtr) docp, &ret, NULL);
 
        if (doctobj != NULL) {
-               doctobj->document = ((dom_object *)((node_ptr 
*)docp->_private)->_private)->document;
-               increment_document_reference(doctobj, docp TSRMLS_CC);
+               doctobj->document = ((dom_object *)((php_libxml_node_ptr 
*)docp->_private)->_private)->document;
+               php_libxml_increment_doc_ref((php_libxml_node_object *)doctobj, docp 
TSRMLS_CC);
        }
 }
 /* }}} end dom_domimplementation_create_document */
Index: php-src/ext/dom/element.c
diff -u php-src/ext/dom/element.c:1.18 php-src/ext/dom/element.c:1.19
--- php-src/ext/dom/element.c:1.18      Mon Oct 20 11:50:34 2003
+++ php-src/ext/dom/element.c   Sun Oct 26 10:57:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: element.c,v 1.18 2003/10/20 15:50:34 rrichards Exp $ */
+/* $Id: element.c,v 1.19 2003/10/26 15:57:01 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -92,9 +92,9 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, nodep TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, 
(void *)intern TSRMLS_CC);
        }
 }
 /* }}} end dom_element_element */
@@ -322,7 +322,7 @@
        existattrp = xmlHasProp(nodep, attrp->name);
        if (existattrp != NULL) {
                if ((oldobj = dom_object_get_data((xmlNodePtr) existattrp)) != NULL && 
-                       ((node_ptr *)oldobj->ptr)->node == (xmlNodePtr) attrp)
+                       ((php_libxml_node_ptr *)oldobj->ptr)->node == (xmlNodePtr) 
attrp)
                {
                        RETURN_NULL();
                }
@@ -331,7 +331,7 @@
 
        if (attrp->doc == NULL && nodep->doc != NULL) {
                attrobj->document = intern->document;
-               increment_document_reference(attrobj, NULL TSRMLS_CC);
+               php_libxml_increment_doc_ref((php_libxml_node_object *)attrobj, NULL 
TSRMLS_CC);
        }
 
        xmlAddChild(nodep, (xmlNodePtr) attrp);
@@ -673,7 +673,7 @@
 
        if (existattrp != NULL) {
                if ((oldobj = dom_object_get_data((xmlNodePtr) existattrp)) != NULL && 
-                       ((node_ptr *)oldobj->ptr)->node == (xmlNodePtr) attrp)
+                       ((php_libxml_node_ptr *)oldobj->ptr)->node == (xmlNodePtr) 
attrp)
                {
                        RETURN_NULL();
                }
@@ -682,7 +682,7 @@
 
        if (attrp->doc == NULL && nodep->doc != NULL) {
                attrobj->document = intern->document;
-               increment_document_reference(attrobj, NULL TSRMLS_CC);
+               php_libxml_increment_doc_ref((php_libxml_node_object *)attrobj, NULL 
TSRMLS_CC);
        }
 
        xmlAddChild(nodep, (xmlNodePtr) attrp);
Index: php-src/ext/dom/entityreference.c
diff -u php-src/ext/dom/entityreference.c:1.4 php-src/ext/dom/entityreference.c:1.5
--- php-src/ext/dom/entityreference.c:1.4       Fri Aug 22 11:04:10 2003
+++ php-src/ext/dom/entityreference.c   Sun Oct 26 10:57:02 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: entityreference.c,v 1.4 2003/08/22 15:04:10 wez Exp $ */
+/* $Id: entityreference.c,v 1.5 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -70,9 +70,9 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, node TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, node, 
(void *)intern TSRMLS_CC);
        }
 }
 
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.14 php-src/ext/dom/node.c:1.15
--- php-src/ext/dom/node.c:1.14 Mon Oct 20 11:50:34 2003
+++ php-src/ext/dom/node.c      Sun Oct 26 10:57:02 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: node.c,v 1.14 2003/10/20 15:50:34 rrichards Exp $ */
+/* $Id: node.c,v 1.15 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -780,7 +780,7 @@
 
        if (child->doc == NULL && parentp->doc != NULL) {
                childobj->document = intern->document;
-               increment_document_reference(childobj, NULL TSRMLS_CC);
+               php_libxml_increment_doc_ref((php_libxml_node_object *)childobj, NULL 
TSRMLS_CC);
        }
 
        if (ref != NULL) {
@@ -802,14 +802,14 @@
                                tmp = xmlStrcat(tmp, refp->content);
                                xmlNodeSetContent(refp, tmp);
                                xmlFree(tmp);
-                               node_free_resource(child TSRMLS_CC);
+                               php_libxml_node_free_resource(child TSRMLS_CC);
                                DOM_RET_OBJ(rv, refp, &ret, intern);
                                return;
                        }
                        if ((refp->prev != NULL) && (refp->prev->type == XML_TEXT_NODE)
                                && (refp->name == refp->prev->name)) {
                                xmlNodeAddContent(refp->prev, child->content);
-                               node_free_resource(child TSRMLS_CC);
+                               php_libxml_node_free_resource(child TSRMLS_CC);
                                DOM_RET_OBJ(rv, refp->prev, &ret, intern);
                                return;
                        }
@@ -823,9 +823,7 @@
                        if (lastattr != NULL) {
                                if (lastattr != (xmlAttrPtr) child) {
                                        xmlUnlinkNode((xmlNodePtr) lastattr);
-                                       node_free_resource((xmlNodePtr) lastattr 
TSRMLS_CC);
-                                       /* Freed above
-                                       xmlFreeProp(lastattr); */
+                                       php_libxml_node_free_resource((xmlNodePtr) 
lastattr TSRMLS_CC);
                                } else {
                                        DOM_RET_OBJ(rv, child, &ret, intern);
                                        return;
@@ -843,7 +841,7 @@
                        (parentp->content != NULL) &&
                        (parentp != child)) {
                                xmlNodeAddContent(parentp, child->content);
-                               node_free_resource(child TSRMLS_CC);
+                               php_libxml_node_free_resource(child TSRMLS_CC);
                                DOM_RET_OBJ(rv, parentp, &ret, intern);
                                return;
                        }
@@ -851,7 +849,7 @@
                        (parentp->last->name == child->name) &&
                        (parentp->last != child)) {
                                xmlNodeAddContent(parentp->last, child->content);
-                               node_free_resource(child TSRMLS_CC);
+                               php_libxml_node_free_resource(child TSRMLS_CC);
                                DOM_RET_OBJ(rv, parentp->last, &ret, intern);
                                return;
                        }
@@ -865,9 +863,7 @@
                        if (lastattr != NULL) {
                                if (lastattr != (xmlAttrPtr) child) {
                                        xmlUnlinkNode((xmlNodePtr) lastattr);
-                                       node_free_resource((xmlNodePtr) lastattr 
TSRMLS_CC);
-                                       /* Freed above
-                                       xmlFreeProp(lastattr); */
+                                       php_libxml_node_free_resource((xmlNodePtr) 
lastattr TSRMLS_CC);
                                } else {
                                        DOM_RET_OBJ(rv, child, &ret, intern);
                                        return;
@@ -960,7 +956,7 @@
                        if (newchild->doc == NULL && nodep->doc != NULL) {
                                xmlSetTreeDoc(newchild, nodep->doc);
                                newchildobj->document = intern->document;
-                               increment_document_reference(newchildobj, NULL 
TSRMLS_CC);
+                               php_libxml_increment_doc_ref((php_libxml_node_object 
*)newchildobj, NULL TSRMLS_CC);
                        }
                        node = xmlReplaceNode(oldchild, newchild);
                }
@@ -1072,7 +1068,7 @@
 
        if (child->doc == NULL && nodep->doc != NULL) {
                childobj->document = intern->document;
-               increment_document_reference(childobj, NULL TSRMLS_CC);
+               php_libxml_increment_doc_ref((php_libxml_node_object *)childobj, NULL 
TSRMLS_CC);
        }
 
        if (child->parent != NULL){
@@ -1083,14 +1079,14 @@
                if ((nodep->type == XML_TEXT_NODE) &&
                (nodep->content != NULL)) {
                        xmlNodeAddContent(nodep, child->content);
-                       node_free_resource(child TSRMLS_CC);
+                       php_libxml_node_free_resource(child TSRMLS_CC);
                        DOM_RET_OBJ(rv, nodep, &ret, intern);
                        return;
                }
                if ((nodep->last != NULL) && (nodep->last->type == XML_TEXT_NODE) &&
                (nodep->last->name == child->name)) {
                        xmlNodeAddContent(nodep->last, child->content);
-                       node_free_resource(child TSRMLS_CC);
+                       php_libxml_node_free_resource(child TSRMLS_CC);
                        DOM_RET_OBJ(rv, nodep->last, &ret, intern);
                        return;
                }
@@ -1104,9 +1100,7 @@
                if (lastattr != NULL) {
                        if (lastattr != (xmlAttrPtr) child) {
                                xmlUnlinkNode((xmlNodePtr) lastattr);
-                               node_free_resource((xmlNodePtr) lastattr TSRMLS_CC);
-                               /* Freed above
-                               xmlFreeProp(lastattr); */
+                               php_libxml_node_free_resource((xmlNodePtr) lastattr 
TSRMLS_CC);
                        }
                }
        } else  if (child->type == XML_DOCUMENT_FRAG_NODE) {
@@ -1186,6 +1180,35 @@
        }
 
        node = xmlDocCopyNode(n, n->doc, recursive);
+
+       /* When deep is false Element nodes still require the attributes 
+       Following taken from libxml as xmlDocCopyNode doesnt do this */
+       if (node && n->type == XML_ELEMENT_NODE && recursive == 0) {
+               if (n->nsDef != NULL) {
+                       node->nsDef = xmlCopyNamespaceList(n->nsDef);
+               }
+               if (n->ns != NULL) {
+                       xmlNsPtr ns;
+                       ns = xmlSearchNs(n->doc, node, n->ns->prefix);
+                       if (ns == NULL) {
+                               ns = xmlSearchNs(n->doc, n, n->ns->prefix);
+                               if (ns != NULL) {
+                                       xmlNodePtr root = node;
+
+                                       while (root->parent != NULL) {
+                                               root = root->parent;
+                                       }
+                                       node->ns = xmlNewNs(root, ns->href, 
ns->prefix);
+                               }
+                       } else {
+                               node->ns = ns;
+                       }
+               }
+               if (n->properties != NULL) {
+                       node->properties = xmlCopyPropList(node, n->properties);
+               }
+       }
+
        if (!node) {
                RETURN_FALSE;
        }
Index: php-src/ext/dom/php_dom.c
diff -u php-src/ext/dom/php_dom.c:1.38 php-src/ext/dom/php_dom.c:1.39
--- php-src/ext/dom/php_dom.c:1.38      Mon Oct 20 11:50:34 2003
+++ php-src/ext/dom/php_dom.c   Sun Oct 26 10:57:02 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_dom.c,v 1.38 2003/10/20 15:50:34 rrichards Exp $ */
+/* $Id: php_dom.c,v 1.39 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -32,7 +32,6 @@
 #include "dom_properties.h"
 
 #include "ext/standard/info.h"
-#include "ext/libxml/php_libxml.h"
 #define PHP_XPATH 1
 #define PHP_XPTR 2
 
@@ -71,10 +70,6 @@
        dom_write_t write_func;
 } dom_prop_handler;
 
-static zend_function_entry dom_functions[] = {
-       {NULL, NULL, NULL}
-};
-
 /* {{{ int dom_node_is_read_only(xmlNodePtr node) */
 int dom_node_is_read_only(xmlNodePtr node) {
        switch (node->type) {
@@ -117,7 +112,7 @@
 /* }}} end dom_node_children_valid */
 
 /* {{{ dom_get_doc_props() */
-dom_doc_propsptr dom_get_doc_props(dom_ref_obj *document)
+dom_doc_propsptr dom_get_doc_props(php_libxml_ref_obj *document)
 {
        dom_doc_props *doc_props;
 
@@ -140,7 +135,7 @@
 /* }}} */
 
 /* {{{ dom_get_strict_error() */
-int dom_get_strict_error(dom_ref_obj *document) {
+int dom_get_strict_error(php_libxml_ref_obj *document) {
        int stricterror;
        dom_doc_props *doc_props;
 
@@ -154,151 +149,28 @@
 }
 /* }}} */
 
-/* {{{ increment_document_reference() */
-int increment_document_reference(dom_object *object, xmlDocPtr docp TSRMLS_DC) {
-       int ret_refcount = -1;
-
-       if (object->document != NULL) {
-               object->document->refcount++;
-               ret_refcount = object->document->refcount;
-       } else if (docp != NULL) {
-               ret_refcount = 1;
-               object->document = emalloc(sizeof(dom_ref_obj));
-               object->document->ptr = docp;
-               object->document->refcount = ret_refcount;
-               object->document->doc_props = NULL;
-       }
-
-       return ret_refcount;
-}
-/* }}} end increment_document_reference */
-
-/* {{{ int decrement_document_reference(dom_object *object) */
-int decrement_document_reference(dom_object *object TSRMLS_DC) {
-       int ret_refcount = -1;
-
-       if (object != NULL && object->document != NULL) {
-               object->document->refcount--;
-               ret_refcount = object->document->refcount;
-               if (ret_refcount == 0) {
-                       if (object->document->ptr != NULL) {
-                               xmlFreeDoc((xmlDoc *) object->document->ptr);
-                               object->document->ptr = NULL;
-                       }
-                       if (object->document->doc_props != NULL) {
-                               efree(object->document->doc_props);
-                       }
-                       efree(object->document);
-               }
-               object->document = NULL;
-       }
-
-       return ret_refcount;
-}
-/* }}} end decrement_document_reference */
-
-/* {{{ int decrement_node_ptr(dom_object *object) */
-int decrement_node_ptr(dom_object *object TSRMLS_DC) {
-       int ret_refcount = -1;
-       node_ptr *obj_node;
-
-       if (object != NULL && object->ptr != NULL) {
-               obj_node = (node_ptr *) object->ptr;
-               ret_refcount = --obj_node->refcount;
-               if (ret_refcount == 0) {
-                       if (obj_node->node != NULL) {
-                               obj_node->node->_private = NULL;
-                       }
-                       efree(object->ptr);
-               }
-               object->ptr = NULL;
-       }
-
-       return ret_refcount;
-}
-/* }}} end decrement_node_ptr */
-
 /* {{{ xmlNodePtr dom_object_get_node(dom_object *obj) */
 xmlNodePtr dom_object_get_node(dom_object *obj)
 {
        if (obj->ptr != NULL) {
-               return ((node_ptr *)obj->ptr)->node;
+               return ((php_libxml_node_ptr *)obj->ptr)->node;
        } else {
                return NULL;
        }
 }
 /* }}} end dom_object_get_node */
 
-/* {{{ dom_object_set_data */
-static void dom_object_set_data(xmlNodePtr obj, dom_object *wrapper TSRMLS_DC)
-{
-       if (wrapper == NULL) {
-               obj->_private = NULL;
-       } else {
-               obj->_private = wrapper->ptr;
-       }
-}
-/* }}} end dom_object_set_data */
-
 /* {{{ dom_object *dom_object_get_data(xmlNodePtr obj) */
 dom_object *dom_object_get_data(xmlNodePtr obj)
 {
        if (obj->_private != NULL) {
-               return (dom_object *) ((node_ptr *) obj->_private)->_private;
+               return (dom_object *) ((php_libxml_node_ptr *) 
obj->_private)->_private;
        } else {
                return NULL;
        }
 }
 /* }}} end dom_object_get_data */
 
-/* {{{ php_dom_clear_object */
-static int php_dom_clear_object(dom_object *object TSRMLS_DC)
-{
-       if (object->prop_handler) {
-               object->prop_handler = NULL;
-       }
-       decrement_node_ptr(object TSRMLS_CC);
-       return decrement_document_reference(object TSRMLS_CC);
-}
-/* }}} end php_dom_clear_object */
-
-/* {{{ void php_dom_set_object(dom_object *object, xmlNodePtr obj TSRMLS_DC) */
-void php_dom_set_object(dom_object *object, xmlNodePtr obj TSRMLS_DC)
-{
-       node_ptr *obj_node;
-
-       if (obj->_private == NULL) {
-               object->ptr = emalloc(sizeof(node_ptr));
-               obj_node = (node_ptr *)object->ptr;
-               obj_node->node = obj;
-               obj_node->refcount = 1;
-               obj_node->_private = object;
-               dom_object_set_data(obj, object TSRMLS_CC);
-       } else if (object->ptr == NULL) {
-               (node_ptr *)object->ptr = obj->_private;
-               obj_node = (node_ptr *)object->ptr;
-               obj_node->refcount++;
-               if (obj_node->_private == NULL) {
-                       obj_node->_private = object;
-               }
-       }
-}
-/* }}} end php_dom_set_object */
-
-/* {{{ dom_unregister_node */
-static int dom_unregister_node(xmlNodePtr nodep TSRMLS_DC)
-{
-       dom_object *wrapper;
-       
-       wrapper = dom_object_get_data(nodep);
-       if (wrapper != NULL ) {
-               return php_dom_clear_object(wrapper TSRMLS_CC);
-       }
-
-       return -1;
-}
-/* }}} end dom_unregister_node */
-
 /* {{{ dom_read_na */
 static int dom_read_na(dom_object *obj, zval **retval TSRMLS_DC)
 {
@@ -409,6 +281,41 @@
 }
 /* }}} */
 
+/* {{{ proto somNode dom_import_simplexml(sxeobject node)
+   Get a simplexml_element object from dom to allow for processing */
+PHP_FUNCTION(dom_import_simplexml)
+{
+#ifdef HAVE_SIMPLEXML
+       zval *rv = NULL;
+       zval *node;
+       xmlNodePtr nodep;
+       php_libxml_node_object *nodeobj;
+       int ret;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &node) == FAILURE) {
+               return;
+       }
+
+       NODE_GET_OBJ(nodep, node, xmlNodePtr, nodeobj);
+
+       if (nodep->type == XML_ELEMENT_NODE || nodep->type == XML_ATTRIBUTE_NODE) {
+               DOM_RET_OBJ(rv, (xmlNodePtr) nodep, &ret, (dom_object *)nodeobj);
+       } else {
+               php_error(E_WARNING, "Invalid Nodetype to import");
+               RETURN_NULL();
+       }
+#else
+       php_error(E_WARNING, "SimpleXML support is not enabled");
+       return;
+#endif
+}
+/* }}} */
+
+static zend_function_entry dom_functions[] = {
+       PHP_FE(dom_import_simplexml, NULL)
+       {NULL, NULL, NULL}
+};
+
 zend_module_entry dom_module_entry = {
        STANDARD_MODULE_HEADER,
        "dom",
@@ -815,125 +722,6 @@
 }
 /* }}} end node_list_unlink */
 
-
-/* {{{ void dom_node_free(xmlNodePtr node) */
-void dom_node_free(xmlNodePtr node)
-{
-       if(node) {
-               if (node->_private != NULL) {
-                       ((node_ptr *) node->_private)->node = NULL;
-               }
-               switch (node->type) {
-                       case XML_ATTRIBUTE_NODE:
-                               xmlFreeProp((xmlAttrPtr) node);
-                               break;
-                       case XML_ENTITY_DECL:
-                       case XML_ELEMENT_DECL:
-                       case XML_ATTRIBUTE_DECL:
-                               break;
-                       case XML_NOTATION_NODE:
-                               /* These require special handling */
-                               if (node->name != NULL) {
-                                       xmlFree((char *) node->name);
-                               }
-                               if (((xmlEntityPtr) node)->ExternalID != NULL) {
-                                       xmlFree((char *) ((xmlEntityPtr) 
node)->ExternalID);
-                               }
-                               if (((xmlEntityPtr) node)->SystemID != NULL) {
-                                       xmlFree((char *) ((xmlEntityPtr) 
node)->SystemID);
-                               }
-                               xmlFree(node);
-                               break;
-                       case XML_NAMESPACE_DECL:
-                               if (node->ns) {
-                                       xmlFreeNs(node->ns);
-                                       node->ns = NULL;
-                               }
-                               node->type = XML_ELEMENT_NODE;
-                       default:
-                               xmlFreeNode(node);
-               }
-       }
-}
-/* }}} end dom_node_free */
-
-/* {{{ node_free_list */
-void node_free_list(xmlNodePtr node TSRMLS_DC)
-{
-       xmlNodePtr curnode;
-
-       if (node != NULL) {
-               curnode = node;
-               while (curnode != NULL) {
-                       node = curnode;
-                       switch (node->type) {
-                               /* Skip property freeing for the following types */
-                               case XML_NOTATION_NODE:
-                                       break;
-                               case XML_ENTITY_REF_NODE:
-                                       node_free_list((xmlNodePtr) node->properties 
TSRMLS_CC);
-                                       break;
-                               case XML_ATTRIBUTE_DECL:
-                               case XML_DTD_NODE:
-                               case XML_DOCUMENT_TYPE_NODE:
-                               case XML_ENTITY_DECL:
-                               case XML_ATTRIBUTE_NODE:
-                               case XML_NAMESPACE_DECL:
-                                       node_free_list(node->children TSRMLS_CC);
-                                       break;
-                               default:
-                                       node_free_list(node->children TSRMLS_CC);
-                                       node_free_list((xmlNodePtr) node->properties 
TSRMLS_CC);
-                       }
-                       
-                       curnode = node->next;
-                       xmlUnlinkNode(node);
-                       if (dom_unregister_node(node TSRMLS_CC) == 0) {
-                               node->doc = NULL;
-                       }
-                       dom_node_free(node);
-               }
-       }
-}
-/* }}} end node_free_list */
-
-/* {{{ node_free_resource */
-void node_free_resource(xmlNodePtr node TSRMLS_DC)
-{
-       if (!node) {
-               return;
-       }
-
-       switch (node->type) {
-               case XML_DOCUMENT_NODE:
-               case XML_HTML_DOCUMENT_NODE:
-                       break;
-               default:
-                       if (node->parent == NULL || node->type == XML_NAMESPACE_DECL) {
-                               node_free_list((xmlNodePtr) node->children TSRMLS_CC);
-                               switch (node->type) {
-                                       /* Skip property freeing for the following 
types */
-                                       case XML_ATTRIBUTE_DECL:
-                                       case XML_DTD_NODE:
-                                       case XML_DOCUMENT_TYPE_NODE:
-                                       case XML_ENTITY_DECL:
-                                       case XML_ATTRIBUTE_NODE:
-                                       case XML_NAMESPACE_DECL:
-                                               break;
-                                       default:
-                                               node_free_list((xmlNodePtr) 
node->properties TSRMLS_CC);
-                               }
-                               if (dom_unregister_node(node TSRMLS_CC) == 0) {
-                                       node->doc = NULL;
-                               }
-                               dom_node_free(node);
-                       } else {
-                               dom_unregister_node(node TSRMLS_CC);
-                       }
-       }
-}
-/* }}} */
-
 /* {{{ dom_objects_clone */
 void dom_objects_clone(void *object, void **object_clone TSRMLS_DC)
 {
@@ -952,7 +740,7 @@
 
        if (intern->ptr != NULL) {
                xmlXPathFreeContext((xmlXPathContextPtr) intern->ptr);
-               decrement_document_reference((dom_object *) intern TSRMLS_CC);
+               php_libxml_decrement_doc_ref((php_libxml_node_object *) intern 
TSRMLS_CC);
                intern->ptr = NULL;
        }
 
@@ -970,12 +758,13 @@
        zend_hash_destroy(intern->std.properties);
        FREE_HASHTABLE(intern->std.properties);
 
-       if (intern->ptr != NULL && ((node_ptr *)intern->ptr)->node != NULL) {
-               if (((xmlNodePtr) ((node_ptr *)intern->ptr)->node)->type != 
XML_DOCUMENT_NODE && ((xmlNodePtr) ((node_ptr *)intern->ptr)->node)->type != 
XML_HTML_DOCUMENT_NODE) {
-                       node_free_resource(dom_object_get_node(intern) TSRMLS_CC);
+       if (intern->ptr != NULL && ((php_libxml_node_ptr *)intern->ptr)->node != NULL) 
{
+               if (((xmlNodePtr) ((php_libxml_node_ptr *)intern->ptr)->node)->type != 
XML_DOCUMENT_NODE && ((xmlNodePtr) ((php_libxml_node_ptr *)intern->ptr)->node)->type 
!= XML_HTML_DOCUMENT_NODE) {
+                       // php_libxml_node_free_resource(dom_object_get_node(intern) 
TSRMLS_CC);
+                       php_libxml_node_decrement_resource((php_libxml_node_object *) 
intern TSRMLS_CC);
                } else {
-                       decrement_node_ptr(intern TSRMLS_CC);
-                       retcount = decrement_document_reference(intern TSRMLS_CC);
+                       php_libxml_decrement_node_ptr((php_libxml_node_object *) 
intern TSRMLS_CC);
+                       retcount = 
php_libxml_decrement_doc_ref((php_libxml_node_object *)intern TSRMLS_CC);
                }
                intern->ptr = NULL;
        }
@@ -1004,7 +793,7 @@
                base_class = base_class->parent;
        }
 
-       zend_hash_find(&classes, base_class->name , base_class->name_length + 1, (void 
**) &intern->prop_handler);
+       zend_hash_find(&classes, base_class->name, base_class->name_length + 1, (void 
**) &intern->prop_handler);
 
        ALLOC_HASHTABLE(intern->std.properties);
        zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
@@ -1157,10 +946,10 @@
                if (domobj != NULL) {
                        intern->document = domobj->document;
                }
-               increment_document_reference(intern, obj->doc TSRMLS_CC);
+               php_libxml_increment_doc_ref((php_libxml_node_object *)intern, 
obj->doc TSRMLS_CC);
        }
 
-       php_dom_set_object(intern, (void *) obj TSRMLS_CC);
+       php_libxml_increment_node_ptr((php_libxml_node_object *)intern, obj, (void 
*)intern TSRMLS_CC);
        return (wrapper);
 }
 /* }}} end php_domobject_new */
@@ -1247,7 +1036,7 @@
                                                xmlNodeAddContent(child, strContent);
                                                xmlFree(strContent);
                                                xmlUnlinkNode(nextp);
-                                               node_free_resource(nextp TSRMLS_CC);
+                                               php_libxml_node_free_resource(nextp 
TSRMLS_CC);
                                                nextp = newnextp;
                                        } else {
                                                break;
Index: php-src/ext/dom/php_dom.h
diff -u php-src/ext/dom/php_dom.h:1.16 php-src/ext/dom/php_dom.h:1.17
--- php-src/ext/dom/php_dom.h:1.16      Mon Sep  8 14:28:35 2003
+++ php-src/ext/dom/php_dom.h   Sun Oct 26 10:57:02 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_dom.h,v 1.16 2003/09/08 18:28:35 rrichards Exp $ */
+/* $Id: php_dom.h,v 1.17 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifndef PHP_DOM_H
 #define PHP_DOM_H
@@ -54,6 +54,7 @@
 #endif
 
 #include "xml_common.h"
+#include "ext/libxml/php_libxml.h"
 #include "zend_default_classes.h"
 /* DOM API_VERSION, please bump it up, if you change anything in the API
     therefore it's easier for the script-programmers to check, what's working how
@@ -63,21 +64,16 @@
 
 #include "dom_fe.h"
 
-void php_dom_set_object(dom_object *object, xmlNodePtr obj TSRMLS_DC);
 dom_object *dom_object_get_data(xmlNodePtr obj);
 xmlNodePtr dom_object_get_node(dom_object *obj);
-dom_doc_propsptr dom_get_doc_props(dom_ref_obj *document);
+dom_doc_propsptr dom_get_doc_props(php_libxml_ref_obj *document);
 zend_object_value dom_objects_new(zend_class_entry *class_type TSRMLS_DC);
 #if defined(LIBXML_XPATH_ENABLED)
 zend_object_value dom_xpath_objects_new(zend_class_entry *class_type TSRMLS_DC);
 #endif
-int dom_get_strict_error(dom_ref_obj *document);
+int dom_get_strict_error(php_libxml_ref_obj *document);
 void php_dom_throw_error(int error_code, int strict_error TSRMLS_DC);
-void node_free_resource(xmlNodePtr node TSRMLS_DC);
 void node_list_unlink(xmlNodePtr node TSRMLS_DC);
-int decrement_node_ptr(dom_object *object TSRMLS_DC);
-int increment_document_reference(dom_object *object, xmlDocPtr docp TSRMLS_DC);
-int decrement_document_reference(dom_object *object TSRMLS_DC);
 int dom_check_qname(char *qname, char **localname, char **prefix, int uri_len, int 
name_len);
 xmlNsPtr dom_get_ns(xmlNodePtr node, char *uri, int *errorcode, char *prefix);
 void dom_set_old_ns(xmlDoc *doc, xmlNs *ns);
@@ -97,7 +93,7 @@
 
 #define DOM_GET_OBJ(__ptr, __id, __prtype, __intern) { \
        __intern = (dom_object *)zend_object_store_get_object(__id TSRMLS_CC); \
-       if (__intern->ptr == NULL || !(__ptr = (__prtype)((node_ptr 
*)__intern->ptr)->node)) { \
+       if (__intern->ptr == NULL || !(__ptr = (__prtype)((php_libxml_node_ptr 
*)__intern->ptr)->node)) { \
                php_error(E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\
                RETURN_NULL();\
        } \
Index: php-src/ext/dom/processinginstruction.c
diff -u php-src/ext/dom/processinginstruction.c:1.5 
php-src/ext/dom/processinginstruction.c:1.6
--- php-src/ext/dom/processinginstruction.c:1.5 Fri Aug 22 11:04:10 2003
+++ php-src/ext/dom/processinginstruction.c     Sun Oct 26 10:57:02 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: processinginstruction.c,v 1.5 2003/08/22 15:04:10 wez Exp $ */
+/* $Id: processinginstruction.c,v 1.6 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -70,9 +70,9 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, nodep TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, 
(void *)intern TSRMLS_CC);
        }
 }
 /* }}} end dom_processinginstruction_processinginstruction */
Index: php-src/ext/dom/text.c
diff -u php-src/ext/dom/text.c:1.12 php-src/ext/dom/text.c:1.13
--- php-src/ext/dom/text.c:1.12 Fri Aug 22 11:04:10 2003
+++ php-src/ext/dom/text.c      Sun Oct 26 10:57:02 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: text.c,v 1.12 2003/08/22 15:04:10 wez Exp $ */
+/* $Id: text.c,v 1.13 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -68,9 +68,9 @@
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
                if (oldnode != NULL) {
-                       node_free_resource(oldnode  TSRMLS_CC);
+                       php_libxml_node_free_resource(oldnode  TSRMLS_CC);
                }
-               php_dom_set_object(intern, nodep TSRMLS_CC);
+               php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, 
(void *)intern TSRMLS_CC);
        }
 }
 /* }}} end dom_text_text */
Index: php-src/ext/dom/xml_common.h
diff -u php-src/ext/dom/xml_common.h:1.14 php-src/ext/dom/xml_common.h:1.15
--- php-src/ext/dom/xml_common.h:1.14   Mon Sep  8 14:28:35 2003
+++ php-src/ext/dom/xml_common.h        Sun Oct 26 10:57:02 2003
@@ -17,11 +17,13 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: xml_common.h,v 1.14 2003/09/08 18:28:35 rrichards Exp $ */
+/* $Id: xml_common.h,v 1.15 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifndef PHP_XML_COMMON_H
 #define PHP_XML_COMMON_H
 
+#include "ext/libxml/php_libxml.h"
+
 typedef struct _dom_doc_props {
        int formatoutput;
        int validateonparse;
@@ -33,28 +35,10 @@
 
 typedef dom_doc_props *dom_doc_propsptr;
 
-typedef struct _dom_ref_obj {
-       void *ptr;
-       int   refcount;
-       dom_doc_props *doc_props;
-} dom_ref_obj;
-
-typedef struct _node_ptr {
-       xmlNodePtr node;
-       int     refcount;
-       void *_private;
-} node_ptr;
-
-typedef struct _node_object {
-       zend_object  std;
-       node_ptr *node;
-       dom_ref_obj *document;
-} node_object;
-
 typedef struct _dom_object {
        zend_object  std;
        void *ptr;
-       dom_ref_obj *document;
+       php_libxml_ref_obj *document;
        HashTable *prop_handler;
        zend_object_handle handle;
 } dom_object;
@@ -80,15 +64,15 @@
     (const xmlChar *) "http://www.w3.org/2000/xmlns/";
 
 #define NODE_GET_OBJ(__ptr, __id, __prtype, __intern) { \
-       __intern = (node_object *)zend_object_store_get_object(__id TSRMLS_CC); \
-       if (__intern->ptr == NULL || !(__ptr = (__prtype)__intern->ptr->node)) { \
+       __intern = (php_libxml_node_object *)zend_object_store_get_object(__id 
TSRMLS_CC); \
+       if (__intern->node == NULL || !(__ptr = (__prtype)__intern->node->node)) { \
                php_error(E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\
                RETURN_NULL();\
        } \
 }
 
 #define DOC_GET_OBJ(__ptr, __id, __prtype, __intern) { \
-       __intern = (node_object *)zend_object_store_get_object(__id TSRMLS_CC); \
+       __intern = (php_libxml_node_object *)zend_object_store_get_object(__id 
TSRMLS_CC); \
        if (__intern->document != NULL) { \
                if (!(__ptr = (__prtype)__intern->document->ptr)) { \
                        php_error(E_WARNING, "Couldn't fetch %s", 
__intern->std.ce->name);\
Index: php-src/ext/dom/xpath.c
diff -u php-src/ext/dom/xpath.c:1.8 php-src/ext/dom/xpath.c:1.9
--- php-src/ext/dom/xpath.c:1.8 Mon Oct 20 11:50:34 2003
+++ php-src/ext/dom/xpath.c     Sun Oct 26 10:57:02 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: xpath.c,v 1.8 2003/10/20 15:50:34 rrichards Exp $ */
+/* $Id: xpath.c,v 1.9 2003/10/26 15:57:02 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -66,12 +66,12 @@
        if (intern != NULL) {
                oldctx = (xmlXPathContextPtr)intern->ptr;
                if (oldctx != NULL) {
-                       decrement_document_reference(intern TSRMLS_CC);
+                       php_libxml_decrement_doc_ref((php_libxml_node_object *)intern 
TSRMLS_CC);
                        xmlXPathFreeContext(oldctx);
                }
                intern->ptr = ctx;
                intern->document = docobj->document;
-               increment_document_reference(intern, docp TSRMLS_CC);
+               php_libxml_increment_doc_ref((php_libxml_node_object *)intern, docp 
TSRMLS_CC);
        }
 }
 /* }}} end dom_xpath_xpath */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to