summaryrefslogtreecommitdiff
path: root/ext/dom/php_dom.c
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2003-12-08 17:08:10 +0000
committerRob Richards <rrichards@php.net>2003-12-08 17:08:10 +0000
commit3084e72ef1053b8ead468e66baf55d5256e7e9af (patch)
treeb65fc5cfe3248eb4924fe5b66b8fd01be26e02e5 /ext/dom/php_dom.c
parent862a7e589d9b4297ee7dd8d181749357b741daff (diff)
downloadphp-git-3084e72ef1053b8ead468e66baf55d5256e7e9af.tar.gz
fix getElementsByTagname iteration
Diffstat (limited to 'ext/dom/php_dom.c')
-rw-r--r--ext/dom/php_dom.c22
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;
}