diff options
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; } |