{
xmlNodePtr node;
char *prefix;
+ int test;
if (sxe->iter.data) {
zval_ptr_dtor(&sxe->iter.data);
}
prefix = sxe->iter.nsprefix;
+ test = sxe->iter.type == SXE_ITER_ATTRLIST && sxe->iter.name;
while (node) {
SKIP_TEXT(node);
}
} else {
if (node->type == XML_ATTRIBUTE_NODE) {
- if (sxe->iter.type == SXE_ITER_ATTRLIST && sxe->iter.name) {
- if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix)) {
- break;
- }
- } else if (match_ns(sxe, node, sxe->iter.nsprefix)) {
+ if ((!test || !xmlStrcmp(node->name, sxe->iter.name)) && match_ns(sxe, node, prefix)) {
break;
}
}
xmlNodePtr node = NULL;
php_sxe_object *intern;
char *prefix;
+ int test;
if (sxe->iter.data) {
intern = (php_sxe_object *)zend_object_store_get_object(sxe->iter.data TSRMLS_CC);
}
prefix = sxe->iter.nsprefix;
+ test = sxe->iter.type == SXE_ITER_ATTRLIST && sxe->iter.name;
while (node) {
SKIP_TEXT(node);
}
} else {
if (node->type == XML_ATTRIBUTE_NODE) {
- if (sxe->iter.type == SXE_ITER_ATTRLIST && sxe->iter.name) {
- if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix)) {
- break;
- }
- } else if (match_ns(sxe, node, sxe->iter.nsprefix)) {
+ if ((!test || !xmlStrcmp(node->name, sxe->iter.name)) && match_ns(sxe, node, prefix)) {
break;
}
}