Lines Matching refs:sxe

55 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data);
56 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data);
67 static void _node_as_zval(php_sxe_object *sxe, xmlNodePtr node, zval *value, SXE_ITER itertype, cha… in _node_as_zval() argument
71 subnode = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in _node_as_zval()
72 subnode->document = sxe->document; in _node_as_zval()
98 static xmlNodePtr php_sxe_get_first_node(php_sxe_object *sxe, xmlNodePtr node) /* {{{ */ in php_sxe_get_first_node() argument
103 if (sxe && sxe->iter.type != SXE_ITER_NONE) { in php_sxe_get_first_node()
104 php_sxe_reset_iterator(sxe, 1); in php_sxe_get_first_node()
105 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_get_first_node()
106 intern = Z_SXEOBJ_P(&sxe->iter.data); in php_sxe_get_first_node()
116 static inline int match_ns(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name, int prefix) /* {{{ … in match_ns() argument
130 static xmlNodePtr sxe_get_element_by_offset(php_sxe_object *sxe, zend_long offset, xmlNodePtr node,… in sxe_get_element_by_offset() argument
134 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_offset()
146 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_offset()
147 if (sxe->iter.type == SXE_ITER_CHILD || ( in sxe_get_element_by_offset()
148 sxe->iter.type == SXE_ITER_ELEMENT && !xmlStrcmp(node->name, sxe->iter.name))) { in sxe_get_element_by_offset()
167 static xmlNodePtr sxe_find_element_by_name(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name) /* … in sxe_find_element_by_name() argument
171 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_find_element_by_name()
182 static xmlNodePtr sxe_get_element_by_name(php_sxe_object *sxe, xmlNodePtr node, char **name, SXE_IT… in sxe_get_element_by_name() argument
188 if (sxe->iter.type != SXE_ITER_ATTRLIST) in sxe_get_element_by_name()
190 orgtype = sxe->iter.type; in sxe_get_element_by_name()
191 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_name()
192 sxe->iter.type = SXE_ITER_CHILD; in sxe_get_element_by_name()
194 node = php_sxe_get_first_node(sxe, node); in sxe_get_element_by_name()
195 sxe->iter.type = orgtype; in sxe_get_element_by_name()
198 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_element_by_name()
199 orgnode = sxe_find_element_by_name(sxe, node, sxe->iter.name); in sxe_get_element_by_name()
208 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_name()
237 php_sxe_object *sxe; in sxe_prop_dim_read() local
245 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_read()
248 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
257 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
272 GET_NODE(sxe, node); in sxe_prop_dim_read()
274 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
277 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
279 test = sxe->iter.name != NULL; in sxe_prop_dim_read()
280 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_read()
281 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
296 if (Z_TYPE_P(member) != IS_LONG || sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
299 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_read()
301 …_node_as_zval(sxe, (xmlNodePtr) attr, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.ispre… in sxe_prop_dim_read()
310 …rcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)name) && match_ns(sxe, (xml… in sxe_prop_dim_read()
311 …_node_as_zval(sxe, (xmlNodePtr) attr, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.ispre… in sxe_prop_dim_read()
321 if (!sxe->node) { in sxe_prop_dim_read()
322 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, node, NULL); in sxe_prop_dim_read()
328 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_read()
329 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
331 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_read()
336 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_read()
341 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
347 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
353 GET_NODE(sxe, node); in sxe_prop_dim_read()
354 node = sxe_get_element_by_name(sxe, node, &name, &newtype); in sxe_prop_dim_read()
356 _node_as_zval(sxe, node, rv, newtype, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
360 if (type != BP_VAR_IS || sxe_find_element_by_name(sxe, node->children, (xmlChar *) name)) { in sxe_prop_dim_read()
361 _node_as_zval(sxe, node, rv, SXE_ITER_ELEMENT, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
445 php_sxe_object *sxe; in sxe_prop_dim_write() local
461 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_write()
464 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
476 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
499 GET_NODE(sxe, node); in sxe_prop_dim_write()
501 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
504 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
506 test = sxe->iter.name != NULL; in sxe_prop_dim_write()
507 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_write()
509 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
521 if (attribs && !node && sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_dim_write()
522 node = xmlNewChild(mynode, mynode->ns, sxe->iter.name, NULL); in sxe_prop_dim_write()
565 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_write()
577 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_write()
598 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_write()
606 newnode = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_write()
616 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_write()
696 php_sxe_object *sxe; in sxe_property_get_adr() local
702 sxe = Z_SXEOBJ_P(object); in sxe_property_get_adr()
704 GET_NODE(sxe, node); in sxe_property_get_adr()
707 node = sxe_get_element_by_name(sxe, node, &name, &type); in sxe_property_get_adr()
717 _node_as_zval(sxe, node, &ret, type, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_property_get_adr()
719 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_property_get_adr()
720 zval_ptr_dtor(&sxe->tmp); in sxe_property_get_adr()
723 ZVAL_COPY_VALUE(&sxe->tmp, &ret); in sxe_property_get_adr()
725 return &sxe->tmp; in sxe_property_get_adr()
733 php_sxe_object *sxe; in sxe_prop_dim_exists() local
745 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_exists()
747 GET_NODE(sxe, node); in sxe_prop_dim_exists()
750 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
753 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
754 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
759 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
762 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
764 test = sxe->iter.name != NULL; in sxe_prop_dim_exists()
765 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_exists()
766 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
777 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_exists()
788 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_exists()
805 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
806 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
808 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_exists()
810 node = sxe_find_element_by_name(sxe, node->children, (xmlChar *)Z_STRVAL_P(member)); in sxe_prop_dim_exists()
851 php_sxe_object *sxe; in sxe_prop_dim_delete() local
864 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_delete()
866 GET_NODE(sxe, node); in sxe_prop_dim_delete()
869 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
872 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
873 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
878 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
881 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
883 test = sxe->iter.name != NULL; in sxe_prop_dim_delete()
884 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_delete()
885 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
896 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_delete()
909 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_delete()
921 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
922 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
924 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_delete()
936 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_delete()
1040 php_sxe_object *sxe; in sxe_prop_is_empty() local
1047 sxe = Z_SXEOBJ_P(object); in sxe_prop_is_empty()
1049 GET_NODE(sxe, node); in sxe_prop_is_empty()
1054 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_is_empty()
1055 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1059 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_prop_is_empty()
1061 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_prop_is_empty()
1068 GET_NODE(sxe, node); in sxe_prop_is_empty()
1069 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1072 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_is_empty()
1075 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_is_empty()
1076 …if (sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || node->children->next ||… in sxe_prop_is_empty()
1079 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_prop_is_empty()
1080 ZVAL_UNDEF(&sxe->iter.data); in sxe_prop_is_empty()
1081 node = php_sxe_reset_iterator(sxe, 0); in sxe_prop_is_empty()
1099 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_prop_is_empty()
1111 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_prop_is_empty()
1119 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_prop_is_empty()
1120 zval_ptr_dtor(&sxe->iter.data); in sxe_prop_is_empty()
1122 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_prop_is_empty()
1134 php_sxe_object *sxe; in sxe_get_prop_hash() local
1145 sxe = Z_SXEOBJ_P(object); in sxe_get_prop_hash()
1150 } else if (sxe->properties) { in sxe_get_prop_hash()
1151 zend_hash_clean(sxe->properties); in sxe_get_prop_hash()
1152 rv = sxe->properties; in sxe_get_prop_hash()
1156 sxe->properties = rv; in sxe_get_prop_hash()
1159 GET_NODE(sxe, node); in sxe_get_prop_hash()
1163 if (is_debug || sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1164 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_prop_hash()
1165 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1170 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_get_prop_hash()
1172 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_get_prop_hash()
1173 ZVAL_STR(&value, sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1)); in sxe_get_prop_hash()
1186 GET_NODE(sxe, node); in sxe_get_prop_hash()
1187 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1189 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_get_prop_hash()
1194 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1196 …if ( sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || !node->next || node->c… in sxe_get_prop_hash()
1199 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_get_prop_hash()
1200 ZVAL_UNDEF(&sxe->iter.data); in sxe_get_prop_hash()
1202 node = php_sxe_reset_iterator(sxe, 0); in sxe_get_prop_hash()
1223 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_get_prop_hash()
1234 _get_base_node_value(sxe, node, &value, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_get_prop_hash()
1243 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_get_prop_hash()
1251 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_get_prop_hash()
1252 zval_ptr_dtor(&sxe->iter.data); in sxe_get_prop_hash()
1254 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_get_prop_hash()
1262 php_sxe_object *sxe; in sxe_get_gc() local
1263 sxe = Z_SXEOBJ_P(object); in sxe_get_gc()
1267 return sxe->properties; in sxe_get_gc()
1309 php_sxe_object *sxe; in SXE_METHOD() local
1324 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1326 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1330 if (!sxe->xpath) { in SXE_METHOD()
1331 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1333 if (!sxe->node) { in SXE_METHOD()
1334 …php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement((xmlDocPtr) sxe-… in SXE_METHOD()
1335 if (!sxe->node) { in SXE_METHOD()
1340 nodeptr = php_sxe_get_first_node(sxe, sxe->node->node); in SXE_METHOD()
1342 sxe->xpath->node = nodeptr; in SXE_METHOD()
1344 ns = xmlGetNsList((xmlDocPtr) sxe->document->ptr, nodeptr); in SXE_METHOD()
1351 sxe->xpath->namespaces = ns; in SXE_METHOD()
1352 sxe->xpath->nsNr = nsnbr; in SXE_METHOD()
1354 retval = xmlXPathEval((xmlChar *)query, sxe->xpath); in SXE_METHOD()
1357 sxe->xpath->namespaces = NULL; in SXE_METHOD()
1358 sxe->xpath->nsNr = 0; in SXE_METHOD()
1379 _node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_NONE, NULL, NULL, 0); in SXE_METHOD()
1381 …_node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_ATTRLIST, (char*)nodeptr->name, nodeptr->ns ?… in SXE_METHOD()
1383 _node_as_zval(sxe, nodeptr, &value, SXE_ITER_NONE, NULL, NULL, 0); in SXE_METHOD()
1399 php_sxe_object *sxe; in SXE_METHOD() local
1407 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1408 if (!sxe->xpath) { in SXE_METHOD()
1409 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1412 if (xmlXPathRegisterNs(sxe->xpath, (xmlChar *)prefix, (xmlChar *)ns_uri) != 0) { in SXE_METHOD()
1424 php_sxe_object *sxe; in SXE_METHOD() local
1441 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1442 GET_NODE(sxe, node); in SXE_METHOD()
1443 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1448 bytes = xmlSaveFile(filename, (xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1461 xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, NULL); in SXE_METHOD()
1470 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1471 GET_NODE(sxe, node); in SXE_METHOD()
1472 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1476 …xmlDocDumpMemoryEnc((xmlDocPtr) sxe->document->ptr, &strval, &strval_len, (const char *) ((xmlDocP… in SXE_METHOD()
1493 …xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, (const char *) ((xmlDocPtr) in SXE_METHOD()
1531 static void sxe_add_namespaces(php_sxe_object *sxe, xmlNodePtr node, zend_bool recursive, zval *ret… in sxe_add_namespaces() argument
1551 sxe_add_namespaces(sxe, node, recursive, return_value); in sxe_add_namespaces()
1563 php_sxe_object *sxe; in SXE_METHOD() local
1572 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1573 GET_NODE(sxe, node); in SXE_METHOD()
1574 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1578 sxe_add_namespaces(sxe, node, recursive, return_value); in SXE_METHOD()
1586 static void sxe_add_registered_namespaces(php_sxe_object *sxe, xmlNodePtr node, zend_bool recursive… in sxe_add_registered_namespaces() argument
1599 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in sxe_add_registered_namespaces()
1612 php_sxe_object *sxe; in SXE_METHOD() local
1619 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1621 node = xmlDocGetRootElement((xmlDocPtr)sxe->document->ptr); in SXE_METHOD()
1623 GET_NODE(sxe, node); in SXE_METHOD()
1631 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in SXE_METHOD()
1639 php_sxe_object *sxe; in SXE_METHOD() local
1649 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1651 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1655 GET_NODE(sxe, node); in SXE_METHOD()
1656 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1658 _node_as_zval(sxe, node, return_value, SXE_ITER_CHILD, NULL, (xmlChar *)nsprefix, isprefix); in SXE_METHOD()
1667 php_sxe_object *sxe; in SXE_METHOD() local
1671 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1673 GET_NODE(sxe, node); in SXE_METHOD()
1674 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1688 php_sxe_object *sxe; in SXE_METHOD() local
1698 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1699 GET_NODE(sxe, node); in SXE_METHOD()
1701 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1705 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1707 _node_as_zval(sxe, node, return_value, SXE_ITER_ATTRLIST, NULL, (xmlChar *)nsprefix, isprefix); in SXE_METHOD()
1715 php_sxe_object *sxe; in SXE_METHOD() local
1732 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1733 GET_NODE(sxe, node); in SXE_METHOD()
1735 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1740 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1767 _node_as_zval(sxe, newnode, return_value, SXE_ITER_NONE, (char *)localname, prefix, 0); in SXE_METHOD()
1780 php_sxe_object *sxe; in SXE_METHOD() local
1798 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1799 GET_NODE(sxe, node); in SXE_METHOD()
1801 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1884 php_sxe_object *sxe; in sxe_object_cast_ex() local
1889 sxe = Z_SXEOBJ_P(readobj); in sxe_object_cast_ex()
1892 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1901 if (sxe->iter.type != SXE_ITER_NONE) { in sxe_object_cast_ex()
1902 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1904 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, node->children, 1); in sxe_object_cast_ex()
1907 if (!sxe->node) { in sxe_object_cast_ex()
1908 if (sxe->document) { in sxe_object_cast_ex()
1909 …php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement((xmlDocPtr) sxe-… in sxe_object_cast_ex()
1913 if (sxe->node && sxe->node->node) { in sxe_object_cast_ex()
1914 if (sxe->node->node->children) { in sxe_object_cast_ex()
1915 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, sxe->node->node->children, 1); in sxe_object_cast_ex()
1958 static int php_sxe_count_elements_helper(php_sxe_object *sxe, zend_long *count) /* {{{ */ in php_sxe_count_elements_helper() argument
1965 ZVAL_COPY_VALUE(&data, &sxe->iter.data); in php_sxe_count_elements_helper()
1966 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_count_elements_helper()
1968 node = php_sxe_reset_iterator(sxe, 0); in php_sxe_count_elements_helper()
1973 node = php_sxe_iterator_fetch(sxe, node->next, 0); in php_sxe_count_elements_helper()
1976 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_count_elements_helper()
1977 zval_ptr_dtor(&sxe->iter.data); in php_sxe_count_elements_helper()
1979 ZVAL_COPY_VALUE(&sxe->iter.data, &data); in php_sxe_count_elements_helper()
2008 php_sxe_object *sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD() local
2014 php_sxe_count_elements_helper(sxe, &count); in SXE_METHOD()
2065 php_sxe_object *sxe = Z_SXEOBJ_P(object); in sxe_object_clone() local
2070 clone = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in sxe_object_clone()
2071 clone->document = sxe->document; in sxe_object_clone()
2077 clone->iter.isprefix = sxe->iter.isprefix; in sxe_object_clone()
2078 if (sxe->iter.name != NULL) { in sxe_object_clone()
2079 clone->iter.name = (xmlChar*)estrdup((char*)sxe->iter.name); in sxe_object_clone()
2081 if (sxe->iter.nsprefix != NULL) { in sxe_object_clone()
2082 clone->iter.nsprefix = (xmlChar*)estrdup((char*)sxe->iter.nsprefix); in sxe_object_clone()
2084 clone->iter.type = sxe->iter.type; in sxe_object_clone()
2086 if (sxe->node) { in sxe_object_clone()
2087 nodep = xmlDocCopyNode(sxe->node->node, docp, 1); in sxe_object_clone()
2101 php_sxe_object *sxe; in sxe_object_dtor() local
2103 sxe = php_sxe_fetch_object(object); in sxe_object_dtor()
2105 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_object_dtor()
2106 zval_ptr_dtor(&sxe->iter.data); in sxe_object_dtor()
2107 ZVAL_UNDEF(&sxe->iter.data); in sxe_object_dtor()
2110 if (sxe->iter.name) { in sxe_object_dtor()
2111 efree(sxe->iter.name); in sxe_object_dtor()
2112 sxe->iter.name = NULL; in sxe_object_dtor()
2114 if (sxe->iter.nsprefix) { in sxe_object_dtor()
2115 efree(sxe->iter.nsprefix); in sxe_object_dtor()
2116 sxe->iter.nsprefix = NULL; in sxe_object_dtor()
2118 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_object_dtor()
2119 zval_ptr_dtor(&sxe->tmp); in sxe_object_dtor()
2120 ZVAL_UNDEF(&sxe->tmp); in sxe_object_dtor()
2129 php_sxe_object *sxe; in sxe_object_free_storage() local
2131 sxe = php_sxe_fetch_object(object); in sxe_object_free_storage()
2133 zend_object_std_dtor(&sxe->zo); in sxe_object_free_storage()
2135 php_libxml_node_decrement_resource((php_libxml_node_object *)sxe); in sxe_object_free_storage()
2137 if (sxe->xpath) { in sxe_object_free_storage()
2138 xmlXPathFreeContext(sxe->xpath); in sxe_object_free_storage()
2141 if (sxe->properties) { in sxe_object_free_storage()
2142 zend_hash_destroy(sxe->properties); in sxe_object_free_storage()
2143 FREE_HASHTABLE(sxe->properties); in sxe_object_free_storage()
2212 php_sxe_object *sxe; in PHP_FUNCTION() local
2244 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2245 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2246 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2247 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2248 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2250 ZVAL_OBJ(return_value, &sxe->zo); in PHP_FUNCTION()
2258 php_sxe_object *sxe; in PHP_FUNCTION() local
2298 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2299 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2300 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2301 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2302 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2304 ZVAL_OBJ(return_value, &sxe->zo); in PHP_FUNCTION()
2312 php_sxe_object *sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD() local
2339 ((php_libxml_node_object *)sxe)->document = NULL; in SXE_METHOD()
2344 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in SXE_METHOD()
2345 sxe->iter.isprefix = isprefix; in SXE_METHOD()
2346 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in SXE_METHOD()
2347 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in SXE_METHOD()
2362 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data) /* {{{… in php_sxe_iterator_fetch() argument
2364 xmlChar *prefix = sxe->iter.nsprefix; in php_sxe_iterator_fetch()
2365 int isprefix = sxe->iter.isprefix; in php_sxe_iterator_fetch()
2367 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in php_sxe_iterator_fetch()
2368 if (sxe->iter.name) { in php_sxe_iterator_fetch()
2371 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2380 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2387 } else if (sxe->iter.type == SXE_ITER_ELEMENT && sxe->iter.name) { in php_sxe_iterator_fetch()
2390 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2399 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2408 _node_as_zval(sxe, node, &sxe->iter.data, SXE_ITER_NONE, NULL, prefix, isprefix); in php_sxe_iterator_fetch()
2415 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data) /* {{{ */ in php_sxe_reset_iterator() argument
2419 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_reset_iterator()
2420 zval_ptr_dtor(&sxe->iter.data); in php_sxe_reset_iterator()
2421 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_reset_iterator()
2424 GET_NODE(sxe, node) in php_sxe_reset_iterator()
2427 switch (sxe->iter.type) { in php_sxe_reset_iterator()
2436 return php_sxe_iterator_fetch(sxe, node, use_data); in php_sxe_reset_iterator()
2454 iterator->sxe = Z_SXEOBJ_P(object); in php_sxe_get_iterator()
2475 return Z_ISUNDEF(iterator->sxe->iter.data) ? FAILURE : SUCCESS; in php_sxe_iterator_valid()
2483 return &iterator->sxe->iter.data; in php_sxe_iterator_current_data()
2490 zval *curobj = &iterator->sxe->iter.data; in php_sxe_iterator_current_key()
2506 PHP_SXE_API void php_sxe_move_forward_iterator(php_sxe_object *sxe) /* {{{ */ in php_sxe_move_forward_iterator() argument
2511 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_move_forward_iterator()
2512 intern = Z_SXEOBJ_P(&sxe->iter.data); in php_sxe_move_forward_iterator()
2514 zval_ptr_dtor(&sxe->iter.data); in php_sxe_move_forward_iterator()
2515 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_move_forward_iterator()
2519 php_sxe_iterator_fetch(sxe, node->next, 1); in php_sxe_move_forward_iterator()
2527 php_sxe_move_forward_iterator(iterator->sxe); in php_sxe_iterator_move_forward()
2533 php_sxe_object *sxe; in php_sxe_iterator_rewind() local
2536 sxe = iterator->sxe; in php_sxe_iterator_rewind()
2538 php_sxe_reset_iterator(sxe, 1); in php_sxe_iterator_rewind()
2544 php_sxe_object *sxe; in simplexml_export_node() local
2547 sxe = Z_SXEOBJ_P(object); in simplexml_export_node()
2548 GET_NODE(sxe, node); in simplexml_export_node()
2549 return php_sxe_get_first_node(sxe, node); in simplexml_export_node()
2557 php_sxe_object *sxe; in PHP_FUNCTION() local
2589 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2590 sxe->document = object->document; in PHP_FUNCTION()
2591 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, nodep->doc); in PHP_FUNCTION()
2592 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, nodep, NULL); in PHP_FUNCTION()
2594 ZVAL_OBJ(return_value, &sxe->zo); in PHP_FUNCTION()
2728 zend_class_entry sxe; in PHP_MINIT_FUNCTION() local
2730 INIT_CLASS_ENTRY(sxe, "SimpleXMLElement", sxe_functions); in PHP_MINIT_FUNCTION()
2731 sxe.create_object = sxe_object_new; in PHP_MINIT_FUNCTION()
2732 sxe_class_entry = zend_register_internal_class(&sxe); in PHP_MINIT_FUNCTION()
2748 PHP_MINIT(sxe)(INIT_FUNC_ARGS_PASSTHRU); in PHP_MINIT_FUNCTION() local