summaryrefslogtreecommitdiff
path: root/ext/dom/dom_iterators.c
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2003-12-29 16:44:47 +0000
committerRob Richards <rrichards@php.net>2003-12-29 16:44:47 +0000
commit66c68da22b17120033e8fd76e58ba590c6d2f758 (patch)
tree7d1f2953307896fe0543fb45d6579fa6574c16e1 /ext/dom/dom_iterators.c
parentd001928aa29cb69f88492e83b02cedb389801a20 (diff)
downloadphp-git-66c68da22b17120033e8fd76e58ba590c6d2f758.tar.gz
Fixed bug #26743 (getElementsByTagName doesn't work properly)
Diffstat (limited to 'ext/dom/dom_iterators.c')
-rw-r--r--ext/dom/dom_iterators.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/dom/dom_iterators.c b/ext/dom/dom_iterators.c
index fe53135996..4ddb0a56e4 100644
--- a/ext/dom/dom_iterators.c
+++ b/ext/dom/dom_iterators.c
@@ -207,6 +207,8 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter TSRMLS_DC)
basenode = dom_object_get_node(objmap->baseobj);
if (basenode && (basenode->type == XML_DOCUMENT_NODE || basenode->type == XML_HTML_DOCUMENT_NODE)) {
basenode = xmlDocGetRootElement((xmlDoc *) basenode);
+ } else {
+ basenode = basenode->children;
}
curnode = dom_get_elements_by_tag_name_ns_raw(basenode, objmap->ns, objmap->local, &previndex, iter->index);
}
@@ -264,6 +266,8 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object TS
} else {
if (nodep->type == XML_DOCUMENT_NODE || nodep->type == XML_HTML_DOCUMENT_NODE) {
nodep = xmlDocGetRootElement((xmlDoc *) nodep);
+ } else {
+ nodep = nodep->children;
}
curnode = dom_get_elements_by_tag_name_ns_raw(nodep, objmap->ns, objmap->local, &curindex, 0);
}