this patch adds a method set_root() to the $doc class. it allows you to add a whole tree to the $doc at once. use with care. this patch is a real quick hack!! ;) have fun though, -lukas --- php-4.1.1/ext/domxml/php_domxml.h.orig Tue Jan 29 15:02:52 2002 +++ php-4.1.1/ext/domxml/php_domxml.h Tue Jan 29 15:03:00 2002 @@ -56,6 +56,7 @@ PHP_FUNCTION(domxml_doc_create_entity_reference); PHP_FUNCTION(domxml_doc_imported_node); PHP_FUNCTION(domxml_add_root); +PHP_FUNCTION(domxml_set_root); PHP_FUNCTION(domxml_intdtd); PHP_FUNCTION(domxml_dumpmem); --- php-4.1.1/ext/domxml/php_domxml.c.orig Tue Jan 29 14:33:48 2002 +++ php-4.1.1/ext/domxml/php_domxml.c Tue Jan 29 15:20:59 2002 @@ -151,6 +151,7 @@ PHP_FE(xmldocfile, NULL) PHP_FE(xmltree, NULL) PHP_FE(domxml_add_root, NULL) + PHP_FE(domxml_set_root, NULL) PHP_FE(domxml_dumpmem, NULL) PHP_FE(domxml_node_attributes, NULL) PHP_FE(domxml_elem_get_attribute, NULL) @@ -204,6 +205,7 @@ PHP_FALIAS(create_processing_instruction, domxml_doc_create_processing_instruction, NULL) PHP_FALIAS(children, domxml_node_children, NULL) PHP_FALIAS(add_root, domxml_add_root, NULL) + PHP_FALIAS(set_root, domxml_set_root, NULL) PHP_FALIAS(imported_node, domxml_doc_imported_node, NULL) PHP_FALIAS(dtd, domxml_intdtd, NULL) PHP_FALIAS(dumpmem, domxml_dumpmem, NULL) @@ -2457,6 +2459,31 @@ DOMXML_RET_OBJ(rv, nodep, &ret); } /* }}} */ + +/* {{{ proto bool domxml_set_root(int domnode) + Sets root node of document */ +PHP_FUNCTION(domxml_set_root) +{ + zval *id, *rv, *node; + xmlDoc *docp; + xmlNode *root; + int ret, name_len; + char *name; + + DOMXML_PARAM_TWO(docp, id, le_domxmldocp, "o", &node, &rv); + DOMXML_GET_OBJ(root, node, le_domxmlnodep); + + if (!root) { + RETURN_FALSE; + } + + xmlDocSetRootElement(docp, root); + + RETURN_TRUE; +} +/* }}} */ + + /* {{{ proto object domxml_new_xmldoc(string version) Creates new xmldoc */