From 20688a30ab55d1635fa416e61cc959948e35e421 Mon Sep 17 00:00:00 2001 From: Christian Stocker Date: Tue, 26 Nov 2002 15:37:54 +0000 Subject: Fix for Bug #20639 DomElement->get_elements_by_tagname() doesn't work --- ext/domxml/php_domxml.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'ext/domxml/php_domxml.c') diff --git a/ext/domxml/php_domxml.c b/ext/domxml/php_domxml.c index c00f618b67..c4f076af0f 100644 --- a/ext/domxml/php_domxml.c +++ b/ext/domxml/php_domxml.c @@ -616,11 +616,12 @@ static inline void node_list_wrapper_dtor(xmlNodePtr node) } } -static xmlNodeSetPtr php_get_elements_by_tagname(xmlNodePtr n, xmlChar* name) +static xmlNodeSetPtr php_get_elements_by_tagname(xmlNodePtr n, xmlChar* name, xmlNodeSet *rv ) { - xmlNodeSetPtr rv = NULL; xmlNodePtr cld = NULL; - + /* TODO + Namespace support + */ if ( n != NULL && name != NULL ) { cld = n->children; while ( cld != NULL ) { @@ -632,6 +633,7 @@ static xmlNodeSetPtr php_get_elements_by_tagname(xmlNodePtr n, xmlChar* name) xmlXPathNodeSetAdd( rv, cld ); } } + rv = php_get_elements_by_tagname(cld, name, rv); cld = cld->next; } } @@ -3042,7 +3044,7 @@ PHP_FUNCTION(domxml_elem_get_elements_by_tagname) xmlNode *nodep; int name_len,i; char *name; - xmlNodeSet *nodesetp; + xmlNodeSet *nodesetp = NULL; DOMXML_PARAM_TWO(nodep, id, le_domxmlelementp, "s", &name, &name_len); @@ -3053,7 +3055,7 @@ PHP_FUNCTION(domxml_elem_get_elements_by_tagname) RETURN_FALSE; } - nodesetp = php_get_elements_by_tagname(nodep,name); + nodesetp = php_get_elements_by_tagname(nodep, name, NULL); if(nodesetp) { for (i = 0; i < nodesetp->nodeNr; i++) { -- cgit v1.2.1