diff options
author | Rob Richards <rrichards@php.net> | 2003-12-08 17:08:10 +0000 |
---|---|---|
committer | Rob Richards <rrichards@php.net> | 2003-12-08 17:08:10 +0000 |
commit | 3084e72ef1053b8ead468e66baf55d5256e7e9af (patch) | |
tree | b65fc5cfe3248eb4924fe5b66b8fd01be26e02e5 /ext/dom/php_dom.c | |
parent | 862a7e589d9b4297ee7dd8d181749357b741daff (diff) | |
download | php-git-3084e72ef1053b8ead468e66baf55d5256e7e9af.tar.gz |
fix getElementsByTagname iteration
Diffstat (limited to 'ext/dom/php_dom.c')
-rw-r--r-- | ext/dom/php_dom.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c index 33f9986422..f2f80ae759 100644 --- a/ext/dom/php_dom.c +++ b/ext/dom/php_dom.c @@ -1092,18 +1092,20 @@ xmlNode *dom_get_elements_by_tag_name_ns_raw(xmlNodePtr nodep, char *ns, char *l xmlNodePtr ret = NULL; while (nodep != NULL && (*cur <= index || index == -1)) { - if (nodep->type == XML_ELEMENT_NODE && xmlStrEqual(nodep->name, local)) { - if (ns == NULL || (nodep->ns != NULL && xmlStrEqual(nodep->ns->href, ns))) { - if (*cur == index) { - ret = nodep; - break; + if (nodep->type == XML_ELEMENT_NODE) { + if (xmlStrEqual(nodep->name, local)) { + if (ns == NULL || (nodep->ns != NULL && xmlStrEqual(nodep->ns->href, ns))) { + if (*cur == index) { + ret = nodep; + break; + } + (*cur)++; } - (*cur)++; } - } - ret = dom_get_elements_by_tag_name_ns_raw(nodep->children, ns, local, cur, index); - if (ret != NULL) { - break; + ret = dom_get_elements_by_tag_name_ns_raw(nodep->children, ns, local, cur, index); + if (ret != NULL) { + break; + } } nodep = nodep->next; } |