Lines Matching refs:sxe

47 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data);
48 static xmlNodePtr php_sxe_reset_iterator_no_clear_iter_data(php_sxe_object *sxe, int use_data);
49 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data);
59 static void _node_as_zval(php_sxe_object *sxe, xmlNodePtr node, zval *value, SXE_ITER itertype, cha… in _node_as_zval() argument
63 subnode = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in _node_as_zval()
64 subnode->document = sxe->document; in _node_as_zval()
81 static xmlNodePtr php_sxe_get_first_node(php_sxe_object *sxe, xmlNodePtr node) in php_sxe_get_first_node() argument
83 if (sxe && sxe->iter.type != SXE_ITER_NONE) { in php_sxe_get_first_node()
84 return php_sxe_reset_iterator(sxe, 1); in php_sxe_get_first_node()
90 static inline int match_ns(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name, int prefix) /* {{{ … in match_ns() argument
104 static xmlNodePtr sxe_get_element_by_offset(php_sxe_object *sxe, zend_long offset, xmlNodePtr node,… in sxe_get_element_by_offset() argument
108 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_offset()
120 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_offset()
121 if (sxe->iter.type == SXE_ITER_CHILD || ( in sxe_get_element_by_offset()
122 sxe->iter.type == SXE_ITER_ELEMENT && !xmlStrcmp(node->name, sxe->iter.name))) { in sxe_get_element_by_offset()
141 static xmlNodePtr sxe_find_element_by_name(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name) /* … in sxe_find_element_by_name() argument
145 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_find_element_by_name()
156 static xmlNodePtr sxe_get_element_by_name(php_sxe_object *sxe, xmlNodePtr node, char **name, SXE_IT… in sxe_get_element_by_name() argument
162 if (sxe->iter.type != SXE_ITER_ATTRLIST) in sxe_get_element_by_name()
164 orgtype = sxe->iter.type; in sxe_get_element_by_name()
165 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_name()
166 sxe->iter.type = SXE_ITER_CHILD; in sxe_get_element_by_name()
168 node = php_sxe_get_first_node(sxe, node); in sxe_get_element_by_name()
169 sxe->iter.type = orgtype; in sxe_get_element_by_name()
172 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_element_by_name()
173 orgnode = sxe_find_element_by_name(sxe, node, sxe->iter.name); in sxe_get_element_by_name()
182 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_name()
210 php_sxe_object *sxe; in sxe_prop_dim_read() local
218 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_read()
221 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
230 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
249 GET_NODE(sxe, node); in sxe_prop_dim_read()
251 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
254 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
256 test = sxe->iter.name != NULL; in sxe_prop_dim_read()
257 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_read()
258 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
273 if (Z_TYPE_P(member) != IS_LONG || sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
276 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_read()
278 …_node_as_zval(sxe, (xmlNodePtr) attr, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.ispre… in sxe_prop_dim_read()
287 …rcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)name) && match_ns(sxe, (xml… in sxe_prop_dim_read()
288 …_node_as_zval(sxe, (xmlNodePtr) attr, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.ispre… in sxe_prop_dim_read()
298 if (!sxe->node) { in sxe_prop_dim_read()
299 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, node, NULL); in sxe_prop_dim_read()
305 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_read()
306 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
308 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_read()
313 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_read()
318 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
324 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
328 if (type != BP_VAR_IS || sxe_find_element_by_name(sxe, node->children, (xmlChar *) name)) { in sxe_prop_dim_read()
329 _node_as_zval(sxe, node, rv, SXE_ITER_ELEMENT, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
378 php_sxe_object *sxe; in sxe_prop_dim_write() local
393 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_write()
396 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
408 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
435 GET_NODE(sxe, node); in sxe_prop_dim_write()
437 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
440 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
442 test = sxe->iter.name != NULL; in sxe_prop_dim_write()
443 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_write()
445 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
457 if (attribs && !node && sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_dim_write()
458 node = xmlNewChild(mynode, mynode->ns, sxe->iter.name, NULL); in sxe_prop_dim_write()
500 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_write()
512 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_write()
533 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_write()
541 newnode = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_write()
551 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_write()
630 php_sxe_object *sxe; in sxe_property_get_adr() local
637 sxe = php_sxe_fetch_object(object); in sxe_property_get_adr()
638 GET_NODE(sxe, node); in sxe_property_get_adr()
643 node = sxe_get_element_by_name(sxe, node, &name, &type); in sxe_property_get_adr()
654 _node_as_zval(sxe, node, &ret, type, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_property_get_adr()
656 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_property_get_adr()
657 zval_ptr_dtor(&sxe->tmp); in sxe_property_get_adr()
660 ZVAL_COPY_VALUE(&sxe->tmp, &ret); in sxe_property_get_adr()
662 return &sxe->tmp; in sxe_property_get_adr()
669 php_sxe_object *sxe; in sxe_prop_dim_exists() local
685 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_exists()
687 GET_NODE(sxe, node); in sxe_prop_dim_exists()
690 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
693 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
694 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
699 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
702 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
704 test = sxe->iter.name != NULL; in sxe_prop_dim_exists()
705 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_exists()
706 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
717 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_exists()
728 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_exists()
745 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
746 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
748 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_exists()
750 node = sxe_find_element_by_name(sxe, node->children, (xmlChar *)Z_STRVAL_P(member)); in sxe_prop_dim_exists()
790 php_sxe_object *sxe; in sxe_prop_dim_delete() local
807 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_delete()
809 GET_NODE(sxe, node); in sxe_prop_dim_delete()
812 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
815 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
816 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
821 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
824 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
826 test = sxe->iter.name != NULL; in sxe_prop_dim_delete()
827 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_delete()
828 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
839 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_delete()
852 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_delete()
864 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
865 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
867 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_delete()
879 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_delete()
982 php_sxe_object *sxe; in sxe_prop_is_empty() local
990 sxe = php_sxe_fetch_object(object); in sxe_prop_is_empty()
992 GET_NODE(sxe, node); in sxe_prop_is_empty()
997 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_is_empty()
998 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1002 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_prop_is_empty()
1004 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_prop_is_empty()
1011 GET_NODE(sxe, node); in sxe_prop_is_empty()
1012 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1015 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_is_empty()
1018 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_is_empty()
1019 …if (sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || node->children->next ||… in sxe_prop_is_empty()
1022 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_prop_is_empty()
1023 ZVAL_UNDEF(&sxe->iter.data); in sxe_prop_is_empty()
1024 node = php_sxe_reset_iterator(sxe, 0); in sxe_prop_is_empty()
1043 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_prop_is_empty()
1055 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_prop_is_empty()
1063 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_prop_is_empty()
1064 zval_ptr_dtor(&sxe->iter.data); in sxe_prop_is_empty()
1066 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_prop_is_empty()
1078 php_sxe_object *sxe; in sxe_get_prop_hash() local
1089 sxe = php_sxe_fetch_object(object); in sxe_get_prop_hash()
1093 } else if (sxe->properties) { in sxe_get_prop_hash()
1094 zend_hash_clean(sxe->properties); in sxe_get_prop_hash()
1095 rv = sxe->properties; in sxe_get_prop_hash()
1098 sxe->properties = rv; in sxe_get_prop_hash()
1101 GET_NODE(sxe, node); in sxe_get_prop_hash()
1105 if (is_debug || sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1106 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_prop_hash()
1107 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1112 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_get_prop_hash()
1114 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_get_prop_hash()
1115 ZVAL_STR(&value, sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1)); in sxe_get_prop_hash()
1128 GET_NODE(sxe, node); in sxe_get_prop_hash()
1129 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1131 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_get_prop_hash()
1136 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1138 …if ( sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || !node->next || node->c… in sxe_get_prop_hash()
1141 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_get_prop_hash()
1142 ZVAL_UNDEF(&sxe->iter.data); in sxe_get_prop_hash()
1144 node = php_sxe_reset_iterator(sxe, 0); in sxe_get_prop_hash()
1165 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_get_prop_hash()
1176 _get_base_node_value(sxe, node, &value, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_get_prop_hash()
1191 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_get_prop_hash()
1199 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_get_prop_hash()
1200 zval_ptr_dtor(&sxe->iter.data); in sxe_get_prop_hash()
1202 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_get_prop_hash()
1210 php_sxe_object *sxe; in sxe_get_gc() local
1211 sxe = php_sxe_fetch_object(object); in sxe_get_gc()
1215 return sxe->properties; in sxe_get_gc()
1266 php_sxe_object *sxe; in PHP_METHOD() local
1281 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1283 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in PHP_METHOD()
1287 GET_NODE(sxe, nodeptr); in PHP_METHOD()
1288 nodeptr = php_sxe_get_first_node(sxe, nodeptr); in PHP_METHOD()
1293 if (!sxe->xpath) { in PHP_METHOD()
1294 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in PHP_METHOD()
1296 sxe->xpath->node = nodeptr; in PHP_METHOD()
1298 ns = xmlGetNsList((xmlDocPtr) sxe->document->ptr, nodeptr); in PHP_METHOD()
1305 sxe->xpath->namespaces = ns; in PHP_METHOD()
1306 sxe->xpath->nsNr = nsnbr; in PHP_METHOD()
1308 retval = xmlXPathEval((xmlChar *)query, sxe->xpath); in PHP_METHOD()
1311 sxe->xpath->namespaces = NULL; in PHP_METHOD()
1312 sxe->xpath->nsNr = 0; in PHP_METHOD()
1333 _node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_NONE, NULL, NULL, 0); in PHP_METHOD()
1335 …_node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_ATTRLIST, (char*)nodeptr->name, nodeptr->ns ?… in PHP_METHOD()
1337 _node_as_zval(sxe, nodeptr, &value, SXE_ITER_NONE, NULL, NULL, 0); in PHP_METHOD()
1354 php_sxe_object *sxe; in PHP_METHOD() local
1362 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1363 if (!sxe->document) { in PHP_METHOD()
1368 if (!sxe->xpath) { in PHP_METHOD()
1369 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in PHP_METHOD()
1372 if (xmlXPathRegisterNs(sxe->xpath, (xmlChar *)prefix, (xmlChar *)ns_uri) != 0) { in PHP_METHOD()
1383 php_sxe_object *sxe; in PHP_METHOD() local
1395 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1396 GET_NODE(sxe, node); in PHP_METHOD()
1397 node = php_sxe_get_first_node(sxe, node); in PHP_METHOD()
1406 bytes = xmlSaveFile(filename, (xmlDocPtr) sxe->document->ptr); in PHP_METHOD()
1419 xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, NULL); in PHP_METHOD()
1426 …xmlDocDumpMemoryEnc((xmlDocPtr) sxe->document->ptr, &strval, &strval_len, (const char *) ((xmlDocP… in PHP_METHOD()
1443 …xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, (const char *) ((xmlDocPtr) in PHP_METHOD()
1478 static void sxe_add_namespaces(php_sxe_object *sxe, xmlNodePtr node, bool recursive, zval *return_v… in sxe_add_namespaces() argument
1498 sxe_add_namespaces(sxe, node, recursive, return_value); in sxe_add_namespaces()
1505 static inline void sxe_object_free_iterxpath(php_sxe_object *sxe) in sxe_object_free_iterxpath() argument
1507 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_object_free_iterxpath()
1508 zval_ptr_dtor(&sxe->iter.data); in sxe_object_free_iterxpath()
1509 ZVAL_UNDEF(&sxe->iter.data); in sxe_object_free_iterxpath()
1512 if (sxe->iter.name) { in sxe_object_free_iterxpath()
1513 efree(sxe->iter.name); in sxe_object_free_iterxpath()
1514 sxe->iter.name = NULL; in sxe_object_free_iterxpath()
1516 if (sxe->iter.nsprefix) { in sxe_object_free_iterxpath()
1517 efree(sxe->iter.nsprefix); in sxe_object_free_iterxpath()
1518 sxe->iter.nsprefix = NULL; in sxe_object_free_iterxpath()
1520 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_object_free_iterxpath()
1521 zval_ptr_dtor(&sxe->tmp); in sxe_object_free_iterxpath()
1522 ZVAL_UNDEF(&sxe->tmp); in sxe_object_free_iterxpath()
1525 php_libxml_node_decrement_resource((php_libxml_node_object *)sxe); in sxe_object_free_iterxpath()
1527 if (sxe->xpath) { in sxe_object_free_iterxpath()
1528 xmlXPathFreeContext(sxe->xpath); in sxe_object_free_iterxpath()
1529 sxe->xpath = NULL; in sxe_object_free_iterxpath()
1538 php_sxe_object *sxe; in PHP_METHOD() local
1547 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1548 GET_NODE(sxe, node); in PHP_METHOD()
1549 node = php_sxe_get_first_node(sxe, node); in PHP_METHOD()
1553 sxe_add_namespaces(sxe, node, recursive, return_value); in PHP_METHOD()
1561 static void sxe_add_registered_namespaces(php_sxe_object *sxe, xmlNodePtr node, bool recursive, zva… in sxe_add_registered_namespaces() argument
1574 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in sxe_add_registered_namespaces()
1586 php_sxe_object *sxe; in PHP_METHOD() local
1593 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1595 if (!sxe->document) { in PHP_METHOD()
1600 node = xmlDocGetRootElement((xmlDocPtr)sxe->document->ptr); in PHP_METHOD()
1602 GET_NODE(sxe, node); in PHP_METHOD()
1610 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in PHP_METHOD()
1617 php_sxe_object *sxe; in PHP_METHOD() local
1627 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1629 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in PHP_METHOD()
1633 GET_NODE(sxe, node); in PHP_METHOD()
1634 node = php_sxe_get_first_node(sxe, node); in PHP_METHOD()
1639 _node_as_zval(sxe, node, return_value, SXE_ITER_CHILD, NULL, (xmlChar *)nsprefix, isprefix); in PHP_METHOD()
1647 php_sxe_object *sxe; in PHP_METHOD() local
1655 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1657 GET_NODE(sxe, node); in PHP_METHOD()
1658 node = php_sxe_get_first_node(sxe, node); in PHP_METHOD()
1671 php_sxe_object *sxe; in PHP_METHOD() local
1681 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1682 GET_NODE(sxe, node); in PHP_METHOD()
1683 node = php_sxe_get_first_node(sxe, node); in PHP_METHOD()
1688 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in PHP_METHOD()
1692 _node_as_zval(sxe, node, return_value, SXE_ITER_ATTRLIST, NULL, (xmlChar *)nsprefix, isprefix); in PHP_METHOD()
1699 php_sxe_object *sxe; in PHP_METHOD() local
1716 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1717 GET_NODE(sxe, node); in PHP_METHOD()
1719 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in PHP_METHOD()
1724 node = php_sxe_get_first_node(sxe, node); in PHP_METHOD()
1751 _node_as_zval(sxe, newnode, return_value, SXE_ITER_NONE, (char *)localname, prefix, 0); in PHP_METHOD()
1763 php_sxe_object *sxe; in PHP_METHOD() local
1781 sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD()
1782 GET_NODE(sxe, node); in PHP_METHOD()
1784 node = php_sxe_get_first_node(sxe, node); in PHP_METHOD()
1868 php_sxe_object *sxe; in sxe_object_cast_ex() local
1874 sxe = php_sxe_fetch_object(readobj); in sxe_object_cast_ex()
1877 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1886 if (sxe->iter.type != SXE_ITER_NONE) { in sxe_object_cast_ex()
1887 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1889 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, node->children, 1); in sxe_object_cast_ex()
1892 if (!sxe->node) { in sxe_object_cast_ex()
1893 if (sxe->document) { in sxe_object_cast_ex()
1894 …php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement((xmlDocPtr) sxe-… in sxe_object_cast_ex()
1898 if (sxe->node && sxe->node->node) { in sxe_object_cast_ex()
1899 if (sxe->node->node->children) { in sxe_object_cast_ex()
1900 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, sxe->node->node->children, 1); in sxe_object_cast_ex()
1901 } else if (sxe->node->node->type == XML_COMMENT_NODE || sxe->node->node->type == XML_PI_NODE) { in sxe_object_cast_ex()
1902 contents = sxe->node->node->content; in sxe_object_cast_ex()
1945 static zend_result php_sxe_count_elements_helper(php_sxe_object *sxe, zend_long *count) /* {{{ */ in php_sxe_count_elements_helper() argument
1952 ZVAL_COPY_VALUE(&data, &sxe->iter.data); in php_sxe_count_elements_helper()
1953 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_count_elements_helper()
1955 node = php_sxe_reset_iterator(sxe, 0); in php_sxe_count_elements_helper()
1960 node = php_sxe_iterator_fetch(sxe, node->next, 0); in php_sxe_count_elements_helper()
1963 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_count_elements_helper()
1964 zval_ptr_dtor(&sxe->iter.data); in php_sxe_count_elements_helper()
1966 ZVAL_COPY_VALUE(&sxe->iter.data, &data); in php_sxe_count_elements_helper()
1994 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD() local
2000 php_sxe_count_elements_helper(sxe, &count); in PHP_METHOD()
2021 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD() local
2027 RETURN_BOOL(!Z_ISUNDEF(sxe->iter.data)); in PHP_METHOD()
2034 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD() local
2040 if (Z_ISUNDEF(sxe->iter.data)) { in PHP_METHOD()
2045 RETURN_COPY_DEREF(&sxe->iter.data); in PHP_METHOD()
2054 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD() local
2060 if (Z_ISUNDEF(sxe->iter.data)) { in PHP_METHOD()
2065 intern = Z_SXEOBJ_P(&sxe->iter.data); in PHP_METHOD()
2090 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD() local
2098 if (Z_ISUNDEF(sxe->iter.data) || sxe->iter.type == SXE_ITER_ATTRLIST) { in PHP_METHOD()
2101 child = Z_SXEOBJ_P(&sxe->iter.data); in PHP_METHOD()
2117 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD() local
2123 if (Z_ISUNDEF(sxe->iter.data) || sxe->iter.type == SXE_ITER_ATTRLIST) { in PHP_METHOD()
2127 RETURN_COPY_DEREF(&sxe->iter.data); in PHP_METHOD()
2136 php_sxe_object *sxe = php_sxe_fetch_object(object); in sxe_object_clone() local
2140 bool is_root_element = sxe->node && sxe->node->node && sxe->node->node->parent in sxe_object_clone()
2141 …&& (sxe->node->node->parent->type == XML_DOCUMENT_NODE || sxe->node->node->parent->type == XML_HTM… in sxe_object_clone()
2143 clone = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in sxe_object_clone()
2146 docp = xmlCopyDoc(sxe->document->ptr, 1); in sxe_object_clone()
2149 clone->document = sxe->document; in sxe_object_clone()
2156 clone->iter.isprefix = sxe->iter.isprefix; in sxe_object_clone()
2157 if (sxe->iter.name != NULL) { in sxe_object_clone()
2158 clone->iter.name = (xmlChar*)estrdup((char*)sxe->iter.name); in sxe_object_clone()
2160 if (sxe->iter.nsprefix != NULL) { in sxe_object_clone()
2161 clone->iter.nsprefix = (xmlChar*)estrdup((char*)sxe->iter.nsprefix); in sxe_object_clone()
2163 clone->iter.type = sxe->iter.type; in sxe_object_clone()
2165 if (sxe->node) { in sxe_object_clone()
2169 nodep = xmlDocCopyNode(sxe->node->node, docp, 1); in sxe_object_clone()
2182 php_sxe_object *sxe; in sxe_object_free_storage() local
2184 sxe = php_sxe_fetch_object(object); in sxe_object_free_storage()
2186 zend_object_std_dtor(&sxe->zo); in sxe_object_free_storage()
2188 sxe_object_free_iterxpath(sxe); in sxe_object_free_storage()
2190 if (sxe->properties) { in sxe_object_free_storage()
2191 zend_hash_destroy(sxe->properties); in sxe_object_free_storage()
2192 FREE_HASHTABLE(sxe->properties); in sxe_object_free_storage()
2257 php_sxe_object *sxe; in PHP_FUNCTION() local
2291 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2292 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2293 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2294 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2295 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2297 RETURN_OBJ(&sxe->zo); in PHP_FUNCTION()
2304 php_sxe_object *sxe; in PHP_FUNCTION() local
2346 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2347 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2348 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2349 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2350 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2352 RETURN_OBJ(&sxe->zo); in PHP_FUNCTION()
2359 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in PHP_METHOD() local
2392 sxe_object_free_iterxpath(sxe); in PHP_METHOD()
2394 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_METHOD()
2395 sxe->iter.isprefix = isprefix; in PHP_METHOD()
2396 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_METHOD()
2397 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_METHOD()
2413 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data) /* {{{… in php_sxe_iterator_fetch() argument
2415 xmlChar *prefix = sxe->iter.nsprefix; in php_sxe_iterator_fetch()
2416 int isprefix = sxe->iter.isprefix; in php_sxe_iterator_fetch()
2418 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in php_sxe_iterator_fetch()
2419 if (sxe->iter.name) { in php_sxe_iterator_fetch()
2422 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2431 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2438 } else if (sxe->iter.type == SXE_ITER_ELEMENT && sxe->iter.name) { in php_sxe_iterator_fetch()
2441 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2450 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2459 _node_as_zval(sxe, node, &sxe->iter.data, SXE_ITER_NONE, NULL, prefix, isprefix); in php_sxe_iterator_fetch()
2466 static xmlNodePtr php_sxe_reset_iterator_no_clear_iter_data(php_sxe_object *sxe, int use_data) in php_sxe_reset_iterator_no_clear_iter_data() argument
2469 GET_NODE(sxe, node) in php_sxe_reset_iterator_no_clear_iter_data()
2472 switch (sxe->iter.type) { in php_sxe_reset_iterator_no_clear_iter_data()
2482 ZEND_ASSERT(Z_ISUNDEF(sxe->iter.data)); in php_sxe_reset_iterator_no_clear_iter_data()
2484 return php_sxe_iterator_fetch(sxe, node, use_data); in php_sxe_reset_iterator_no_clear_iter_data()
2489 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data) /* {{{ */ in php_sxe_reset_iterator() argument
2491 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_reset_iterator()
2492 zval_ptr_dtor(&sxe->iter.data); in php_sxe_reset_iterator()
2493 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_reset_iterator()
2496 return php_sxe_reset_iterator_no_clear_iter_data(sxe, use_data); in php_sxe_reset_iterator()
2513 iterator->sxe = Z_SXEOBJ_P(object); in php_sxe_get_iterator()
2534 return Z_ISUNDEF(iterator->sxe->iter.data) ? FAILURE : SUCCESS; in php_sxe_iterator_valid()
2542 return &iterator->sxe->iter.data; in php_sxe_iterator_current_data()
2549 zval *curobj = &iterator->sxe->iter.data; in php_sxe_iterator_current_key()
2570 PHP_SXE_API void php_sxe_move_forward_iterator(php_sxe_object *sxe) /* {{{ */ in php_sxe_move_forward_iterator() argument
2575 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_move_forward_iterator()
2576 intern = Z_SXEOBJ_P(&sxe->iter.data); in php_sxe_move_forward_iterator()
2578 zval_ptr_dtor(&sxe->iter.data); in php_sxe_move_forward_iterator()
2579 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_move_forward_iterator()
2583 php_sxe_iterator_fetch(sxe, node->next, 1); in php_sxe_move_forward_iterator()
2591 php_sxe_move_forward_iterator(iterator->sxe); in php_sxe_iterator_move_forward()
2595 PHP_SXE_API void php_sxe_rewind_iterator(php_sxe_object *sxe) /* {{{ */ in php_sxe_rewind_iterator() argument
2597 php_sxe_reset_iterator(sxe, 1); in php_sxe_rewind_iterator()
2603 php_sxe_object *sxe; in php_sxe_iterator_rewind() local
2606 sxe = iterator->sxe; in php_sxe_iterator_rewind()
2608 php_sxe_reset_iterator(sxe, 1); in php_sxe_iterator_rewind()
2614 php_sxe_object *sxe; in simplexml_export_node() local
2617 sxe = Z_SXEOBJ_P(object); in simplexml_export_node()
2618 GET_NODE(sxe, node); in simplexml_export_node()
2619 return php_sxe_get_first_node(sxe, node); in simplexml_export_node()
2626 php_sxe_object *sxe; in PHP_FUNCTION() local
2663 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2664 sxe->document = object->document; in PHP_FUNCTION()
2665 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, nodep->doc); in PHP_FUNCTION()
2666 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, nodep, NULL); in PHP_FUNCTION()
2668 RETURN_OBJ(&sxe->zo); in PHP_FUNCTION()