Lines Matching refs:sxe

52 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data);
53 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data);
63 static void _node_as_zval(php_sxe_object *sxe, xmlNodePtr node, zval *value, SXE_ITER itertype, cha… in _node_as_zval() argument
67 subnode = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in _node_as_zval()
68 subnode->document = sxe->document; in _node_as_zval()
85 static xmlNodePtr php_sxe_get_first_node(php_sxe_object *sxe, xmlNodePtr node) /* {{{ */ in php_sxe_get_first_node() argument
90 if (sxe && sxe->iter.type != SXE_ITER_NONE) { in php_sxe_get_first_node()
91 php_sxe_reset_iterator(sxe, 1); in php_sxe_get_first_node()
92 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_get_first_node()
93 intern = Z_SXEOBJ_P(&sxe->iter.data); in php_sxe_get_first_node()
103 static inline int match_ns(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name, int prefix) /* {{{ … in match_ns() argument
117 static xmlNodePtr sxe_get_element_by_offset(php_sxe_object *sxe, zend_long offset, xmlNodePtr node,… in sxe_get_element_by_offset() argument
121 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_offset()
133 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_offset()
134 if (sxe->iter.type == SXE_ITER_CHILD || ( in sxe_get_element_by_offset()
135 sxe->iter.type == SXE_ITER_ELEMENT && !xmlStrcmp(node->name, sxe->iter.name))) { in sxe_get_element_by_offset()
154 static xmlNodePtr sxe_find_element_by_name(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name) /* … in sxe_find_element_by_name() argument
158 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_find_element_by_name()
169 static xmlNodePtr sxe_get_element_by_name(php_sxe_object *sxe, xmlNodePtr node, char **name, SXE_IT… in sxe_get_element_by_name() argument
175 if (sxe->iter.type != SXE_ITER_ATTRLIST) in sxe_get_element_by_name()
177 orgtype = sxe->iter.type; in sxe_get_element_by_name()
178 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_name()
179 sxe->iter.type = SXE_ITER_CHILD; in sxe_get_element_by_name()
181 node = php_sxe_get_first_node(sxe, node); in sxe_get_element_by_name()
182 sxe->iter.type = orgtype; in sxe_get_element_by_name()
185 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_element_by_name()
186 orgnode = sxe_find_element_by_name(sxe, node, sxe->iter.name); in sxe_get_element_by_name()
195 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_name()
223 php_sxe_object *sxe; in sxe_prop_dim_read() local
231 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_read()
234 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
243 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
262 GET_NODE(sxe, node); in sxe_prop_dim_read()
264 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
267 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
269 test = sxe->iter.name != NULL; in sxe_prop_dim_read()
270 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_read()
271 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
286 if (Z_TYPE_P(member) != IS_LONG || sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
289 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_read()
291 …_node_as_zval(sxe, (xmlNodePtr) attr, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.ispre… in sxe_prop_dim_read()
300 …rcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)name) && match_ns(sxe, (xml… 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()
311 if (!sxe->node) { in sxe_prop_dim_read()
312 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, node, NULL); in sxe_prop_dim_read()
318 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_read()
319 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
321 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_read()
326 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_read()
331 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
337 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
341 if (type != BP_VAR_IS || sxe_find_element_by_name(sxe, node->children, (xmlChar *) name)) { in sxe_prop_dim_read()
342 _node_as_zval(sxe, node, rv, SXE_ITER_ELEMENT, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
391 php_sxe_object *sxe; in sxe_prop_dim_write() local
406 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_write()
409 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
421 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
448 GET_NODE(sxe, node); in sxe_prop_dim_write()
450 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
453 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
455 test = sxe->iter.name != NULL; in sxe_prop_dim_write()
456 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_write()
458 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
470 if (attribs && !node && sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_dim_write()
471 node = xmlNewChild(mynode, mynode->ns, sxe->iter.name, NULL); in sxe_prop_dim_write()
513 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_write()
525 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_write()
546 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_write()
554 newnode = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_write()
564 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_write()
643 php_sxe_object *sxe; in sxe_property_get_adr() local
650 sxe = php_sxe_fetch_object(object); in sxe_property_get_adr()
651 GET_NODE(sxe, node); in sxe_property_get_adr()
653 node = sxe_get_element_by_name(sxe, node, &name, &type); in sxe_property_get_adr()
664 _node_as_zval(sxe, node, &ret, type, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_property_get_adr()
666 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_property_get_adr()
667 zval_ptr_dtor(&sxe->tmp); in sxe_property_get_adr()
670 ZVAL_COPY_VALUE(&sxe->tmp, &ret); in sxe_property_get_adr()
672 return &sxe->tmp; in sxe_property_get_adr()
679 php_sxe_object *sxe; in sxe_prop_dim_exists() local
695 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_exists()
697 GET_NODE(sxe, node); in sxe_prop_dim_exists()
700 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
703 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
704 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
709 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
712 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
714 test = sxe->iter.name != NULL; in sxe_prop_dim_exists()
715 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_exists()
716 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
727 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_exists()
738 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_exists()
755 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
756 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
758 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_exists()
760 node = sxe_find_element_by_name(sxe, node->children, (xmlChar *)Z_STRVAL_P(member)); in sxe_prop_dim_exists()
800 php_sxe_object *sxe; in sxe_prop_dim_delete() local
817 sxe = php_sxe_fetch_object(object); in sxe_prop_dim_delete()
819 GET_NODE(sxe, node); in sxe_prop_dim_delete()
822 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
825 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
826 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
831 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
834 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
836 test = sxe->iter.name != NULL; in sxe_prop_dim_delete()
837 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_delete()
838 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
849 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_delete()
862 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_delete()
874 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
875 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
877 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_delete()
889 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_delete()
992 php_sxe_object *sxe; in sxe_prop_is_empty() local
1000 sxe = php_sxe_fetch_object(object); in sxe_prop_is_empty()
1002 GET_NODE(sxe, node); in sxe_prop_is_empty()
1007 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_is_empty()
1008 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1012 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_prop_is_empty()
1014 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_prop_is_empty()
1021 GET_NODE(sxe, node); in sxe_prop_is_empty()
1022 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1025 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_is_empty()
1028 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_is_empty()
1029 …if (sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || node->children->next ||… in sxe_prop_is_empty()
1032 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_prop_is_empty()
1033 ZVAL_UNDEF(&sxe->iter.data); in sxe_prop_is_empty()
1034 node = php_sxe_reset_iterator(sxe, 0); in sxe_prop_is_empty()
1053 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_prop_is_empty()
1065 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_prop_is_empty()
1073 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_prop_is_empty()
1074 zval_ptr_dtor(&sxe->iter.data); in sxe_prop_is_empty()
1076 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_prop_is_empty()
1088 php_sxe_object *sxe; in sxe_get_prop_hash() local
1099 sxe = php_sxe_fetch_object(object); in sxe_get_prop_hash()
1103 } else if (sxe->properties) { in sxe_get_prop_hash()
1104 zend_hash_clean(sxe->properties); in sxe_get_prop_hash()
1105 rv = sxe->properties; in sxe_get_prop_hash()
1108 sxe->properties = rv; in sxe_get_prop_hash()
1111 GET_NODE(sxe, node); in sxe_get_prop_hash()
1115 if (is_debug || sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1116 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_prop_hash()
1117 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1122 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_get_prop_hash()
1124 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_get_prop_hash()
1125 ZVAL_STR(&value, sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1)); in sxe_get_prop_hash()
1138 GET_NODE(sxe, node); in sxe_get_prop_hash()
1139 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1141 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_get_prop_hash()
1146 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1148 …if ( sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || !node->next || node->c… in sxe_get_prop_hash()
1151 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_get_prop_hash()
1152 ZVAL_UNDEF(&sxe->iter.data); in sxe_get_prop_hash()
1154 node = php_sxe_reset_iterator(sxe, 0); in sxe_get_prop_hash()
1175 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_get_prop_hash()
1186 _get_base_node_value(sxe, node, &value, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_get_prop_hash()
1195 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_get_prop_hash()
1203 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_get_prop_hash()
1204 zval_ptr_dtor(&sxe->iter.data); in sxe_get_prop_hash()
1206 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_get_prop_hash()
1214 php_sxe_object *sxe; in sxe_get_gc() local
1215 sxe = php_sxe_fetch_object(object); in sxe_get_gc()
1219 return sxe->properties; in sxe_get_gc()
1270 php_sxe_object *sxe; in SXE_METHOD() local
1285 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1287 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1291 GET_NODE(sxe, nodeptr); in SXE_METHOD()
1292 nodeptr = php_sxe_get_first_node(sxe, nodeptr); in SXE_METHOD()
1297 if (!sxe->xpath) { in SXE_METHOD()
1298 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1300 sxe->xpath->node = nodeptr; in SXE_METHOD()
1302 ns = xmlGetNsList((xmlDocPtr) sxe->document->ptr, nodeptr); in SXE_METHOD()
1309 sxe->xpath->namespaces = ns; in SXE_METHOD()
1310 sxe->xpath->nsNr = nsnbr; in SXE_METHOD()
1312 retval = xmlXPathEval((xmlChar *)query, sxe->xpath); in SXE_METHOD()
1315 sxe->xpath->namespaces = NULL; in SXE_METHOD()
1316 sxe->xpath->nsNr = 0; in SXE_METHOD()
1337 _node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_NONE, NULL, NULL, 0); in SXE_METHOD()
1339 …_node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_ATTRLIST, (char*)nodeptr->name, nodeptr->ns ?… in SXE_METHOD()
1341 _node_as_zval(sxe, nodeptr, &value, SXE_ITER_NONE, NULL, NULL, 0); in SXE_METHOD()
1358 php_sxe_object *sxe; in SXE_METHOD() local
1366 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1367 if (!sxe->document) { in SXE_METHOD()
1372 if (!sxe->xpath) { in SXE_METHOD()
1373 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1376 if (xmlXPathRegisterNs(sxe->xpath, (xmlChar *)prefix, (xmlChar *)ns_uri) != 0) { in SXE_METHOD()
1387 php_sxe_object *sxe; in SXE_METHOD() local
1399 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1400 GET_NODE(sxe, node); in SXE_METHOD()
1401 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1410 bytes = xmlSaveFile(filename, (xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1423 xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, NULL); in SXE_METHOD()
1430 …xmlDocDumpMemoryEnc((xmlDocPtr) sxe->document->ptr, &strval, &strval_len, (const char *) ((xmlDocP… in SXE_METHOD()
1447 …xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, (const char *) ((xmlDocPtr) in SXE_METHOD()
1482 static void sxe_add_namespaces(php_sxe_object *sxe, xmlNodePtr node, zend_bool recursive, zval *ret… in sxe_add_namespaces() argument
1502 sxe_add_namespaces(sxe, node, recursive, return_value); in sxe_add_namespaces()
1513 php_sxe_object *sxe; in SXE_METHOD() local
1522 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1523 GET_NODE(sxe, node); in SXE_METHOD()
1524 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1528 sxe_add_namespaces(sxe, node, recursive, return_value); in SXE_METHOD()
1536 static void sxe_add_registered_namespaces(php_sxe_object *sxe, xmlNodePtr node, zend_bool recursive… in sxe_add_registered_namespaces() argument
1549 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in sxe_add_registered_namespaces()
1561 php_sxe_object *sxe; in SXE_METHOD() local
1568 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1570 if (!sxe->document) { in SXE_METHOD()
1575 node = xmlDocGetRootElement((xmlDocPtr)sxe->document->ptr); in SXE_METHOD()
1577 GET_NODE(sxe, node); in SXE_METHOD()
1585 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in SXE_METHOD()
1592 php_sxe_object *sxe; in SXE_METHOD() local
1602 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1604 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1608 GET_NODE(sxe, node); in SXE_METHOD()
1609 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1614 _node_as_zval(sxe, node, return_value, SXE_ITER_CHILD, NULL, (xmlChar *)nsprefix, isprefix); in SXE_METHOD()
1622 php_sxe_object *sxe; in SXE_METHOD() local
1630 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1632 GET_NODE(sxe, node); in SXE_METHOD()
1633 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1646 php_sxe_object *sxe; in SXE_METHOD() local
1656 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1657 GET_NODE(sxe, node); in SXE_METHOD()
1658 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1663 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1667 _node_as_zval(sxe, node, return_value, SXE_ITER_ATTRLIST, NULL, (xmlChar *)nsprefix, isprefix); in SXE_METHOD()
1674 php_sxe_object *sxe; in SXE_METHOD() local
1691 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1692 GET_NODE(sxe, node); in SXE_METHOD()
1694 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1699 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1726 _node_as_zval(sxe, newnode, return_value, SXE_ITER_NONE, (char *)localname, prefix, 0); in SXE_METHOD()
1738 php_sxe_object *sxe; in SXE_METHOD() local
1756 sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD()
1757 GET_NODE(sxe, node); in SXE_METHOD()
1759 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1843 php_sxe_object *sxe; in sxe_object_cast_ex() local
1848 sxe = php_sxe_fetch_object(readobj); in sxe_object_cast_ex()
1851 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1860 if (sxe->iter.type != SXE_ITER_NONE) { in sxe_object_cast_ex()
1861 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1863 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, node->children, 1); in sxe_object_cast_ex()
1866 if (!sxe->node) { in sxe_object_cast_ex()
1867 if (sxe->document) { in sxe_object_cast_ex()
1868 …php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement((xmlDocPtr) sxe-… in sxe_object_cast_ex()
1872 if (sxe->node && sxe->node->node) { in sxe_object_cast_ex()
1873 if (sxe->node->node->children) { in sxe_object_cast_ex()
1874 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, sxe->node->node->children, 1); in sxe_object_cast_ex()
1916 static int php_sxe_count_elements_helper(php_sxe_object *sxe, zend_long *count) /* {{{ */ in php_sxe_count_elements_helper() argument
1923 ZVAL_COPY_VALUE(&data, &sxe->iter.data); in php_sxe_count_elements_helper()
1924 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_count_elements_helper()
1926 node = php_sxe_reset_iterator(sxe, 0); in php_sxe_count_elements_helper()
1931 node = php_sxe_iterator_fetch(sxe, node->next, 0); in php_sxe_count_elements_helper()
1934 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_count_elements_helper()
1935 zval_ptr_dtor(&sxe->iter.data); in php_sxe_count_elements_helper()
1937 ZVAL_COPY_VALUE(&sxe->iter.data, &data); in php_sxe_count_elements_helper()
1965 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD() local
1971 php_sxe_count_elements_helper(sxe, &count); in SXE_METHOD()
1992 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD() local
1998 RETURN_BOOL(!Z_ISUNDEF(sxe->iter.data)); in SXE_METHOD()
2005 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD() local
2012 if (Z_ISUNDEF(sxe->iter.data)) { in SXE_METHOD()
2016 data = &sxe->iter.data; in SXE_METHOD()
2026 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD() local
2032 if (Z_ISUNDEF(sxe->iter.data)) { in SXE_METHOD()
2036 intern = Z_SXEOBJ_P(&sxe->iter.data); in SXE_METHOD()
2060 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD() local
2068 if (Z_ISUNDEF(sxe->iter.data) || sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
2071 child = Z_SXEOBJ_P(&sxe->iter.data); in SXE_METHOD()
2087 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD() local
2094 if (Z_ISUNDEF(sxe->iter.data) || sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
2098 data = &sxe->iter.data; in SXE_METHOD()
2108 php_sxe_object *sxe = php_sxe_fetch_object(object); in sxe_object_clone() local
2112 zend_bool is_root_element = sxe->node && sxe->node->node && sxe->node->node->parent in sxe_object_clone()
2113 …&& (sxe->node->node->parent->type == XML_DOCUMENT_NODE || sxe->node->node->parent->type == XML_HTM… in sxe_object_clone()
2115 clone = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in sxe_object_clone()
2118 docp = xmlCopyDoc(sxe->document->ptr, 1); in sxe_object_clone()
2121 clone->document = sxe->document; in sxe_object_clone()
2128 clone->iter.isprefix = sxe->iter.isprefix; in sxe_object_clone()
2129 if (sxe->iter.name != NULL) { in sxe_object_clone()
2130 clone->iter.name = (xmlChar*)estrdup((char*)sxe->iter.name); in sxe_object_clone()
2132 if (sxe->iter.nsprefix != NULL) { in sxe_object_clone()
2133 clone->iter.nsprefix = (xmlChar*)estrdup((char*)sxe->iter.nsprefix); in sxe_object_clone()
2135 clone->iter.type = sxe->iter.type; in sxe_object_clone()
2137 if (sxe->node) { in sxe_object_clone()
2141 nodep = xmlDocCopyNode(sxe->node->node, docp, 1); in sxe_object_clone()
2155 php_sxe_object *sxe; in sxe_object_dtor() local
2157 sxe = php_sxe_fetch_object(object); in sxe_object_dtor()
2159 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_object_dtor()
2160 zval_ptr_dtor(&sxe->iter.data); in sxe_object_dtor()
2161 ZVAL_UNDEF(&sxe->iter.data); in sxe_object_dtor()
2164 if (sxe->iter.name) { in sxe_object_dtor()
2165 efree(sxe->iter.name); in sxe_object_dtor()
2166 sxe->iter.name = NULL; in sxe_object_dtor()
2168 if (sxe->iter.nsprefix) { in sxe_object_dtor()
2169 efree(sxe->iter.nsprefix); in sxe_object_dtor()
2170 sxe->iter.nsprefix = NULL; in sxe_object_dtor()
2172 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_object_dtor()
2173 zval_ptr_dtor(&sxe->tmp); in sxe_object_dtor()
2174 ZVAL_UNDEF(&sxe->tmp); in sxe_object_dtor()
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 php_libxml_node_decrement_resource((php_libxml_node_object *)sxe); in sxe_object_free_storage()
2190 if (sxe->xpath) { in sxe_object_free_storage()
2191 xmlXPathFreeContext(sxe->xpath); in sxe_object_free_storage()
2194 if (sxe->properties) { in sxe_object_free_storage()
2195 zend_hash_destroy(sxe->properties); in sxe_object_free_storage()
2196 FREE_HASHTABLE(sxe->properties); in sxe_object_free_storage()
2261 php_sxe_object *sxe; in PHP_FUNCTION() local
2295 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2296 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2297 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2298 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2299 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2301 RETURN_OBJ(&sxe->zo); in PHP_FUNCTION()
2308 php_sxe_object *sxe; in PHP_FUNCTION() local
2350 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2351 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2352 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2353 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2354 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2356 RETURN_OBJ(&sxe->zo); in PHP_FUNCTION()
2363 php_sxe_object *sxe = Z_SXEOBJ_P(ZEND_THIS); in SXE_METHOD() local
2392 ((php_libxml_node_object *)sxe)->document = NULL; in SXE_METHOD()
2397 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in SXE_METHOD()
2398 sxe->iter.isprefix = isprefix; in SXE_METHOD()
2399 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in SXE_METHOD()
2400 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in SXE_METHOD()
2416 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data) /* {{{… in php_sxe_iterator_fetch() argument
2418 xmlChar *prefix = sxe->iter.nsprefix; in php_sxe_iterator_fetch()
2419 int isprefix = sxe->iter.isprefix; in php_sxe_iterator_fetch()
2421 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in php_sxe_iterator_fetch()
2422 if (sxe->iter.name) { in php_sxe_iterator_fetch()
2425 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2434 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2441 } else if (sxe->iter.type == SXE_ITER_ELEMENT && sxe->iter.name) { in php_sxe_iterator_fetch()
2444 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2453 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2462 _node_as_zval(sxe, node, &sxe->iter.data, SXE_ITER_NONE, NULL, prefix, isprefix); in php_sxe_iterator_fetch()
2469 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data) /* {{{ */ in php_sxe_reset_iterator() argument
2473 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_reset_iterator()
2474 zval_ptr_dtor(&sxe->iter.data); in php_sxe_reset_iterator()
2475 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_reset_iterator()
2478 GET_NODE(sxe, node) in php_sxe_reset_iterator()
2481 switch (sxe->iter.type) { in php_sxe_reset_iterator()
2490 return php_sxe_iterator_fetch(sxe, node, use_data); in php_sxe_reset_iterator()
2509 iterator->sxe = Z_SXEOBJ_P(object); in php_sxe_get_iterator()
2530 return Z_ISUNDEF(iterator->sxe->iter.data) ? FAILURE : SUCCESS; in php_sxe_iterator_valid()
2538 return &iterator->sxe->iter.data; in php_sxe_iterator_current_data()
2545 zval *curobj = &iterator->sxe->iter.data; in php_sxe_iterator_current_key()
2561 PHP_SXE_API void php_sxe_move_forward_iterator(php_sxe_object *sxe) /* {{{ */ in php_sxe_move_forward_iterator() argument
2566 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_move_forward_iterator()
2567 intern = Z_SXEOBJ_P(&sxe->iter.data); in php_sxe_move_forward_iterator()
2569 zval_ptr_dtor(&sxe->iter.data); in php_sxe_move_forward_iterator()
2570 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_move_forward_iterator()
2574 php_sxe_iterator_fetch(sxe, node->next, 1); in php_sxe_move_forward_iterator()
2582 php_sxe_move_forward_iterator(iterator->sxe); in php_sxe_iterator_move_forward()
2586 PHP_SXE_API void php_sxe_rewind_iterator(php_sxe_object *sxe) /* {{{ */ in php_sxe_rewind_iterator() argument
2588 php_sxe_reset_iterator(sxe, 1); in php_sxe_rewind_iterator()
2594 php_sxe_object *sxe; in php_sxe_iterator_rewind() local
2597 sxe = iterator->sxe; in php_sxe_iterator_rewind()
2599 php_sxe_reset_iterator(sxe, 1); in php_sxe_iterator_rewind()
2605 php_sxe_object *sxe; in simplexml_export_node() local
2608 sxe = Z_SXEOBJ_P(object); in simplexml_export_node()
2609 GET_NODE(sxe, node); in simplexml_export_node()
2610 return php_sxe_get_first_node(sxe, node); in simplexml_export_node()
2617 php_sxe_object *sxe; in PHP_FUNCTION() local
2654 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2655 sxe->document = object->document; in PHP_FUNCTION()
2656 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, nodep->doc); in PHP_FUNCTION()
2657 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, nodep, NULL); in PHP_FUNCTION()
2659 RETURN_OBJ(&sxe->zo); in PHP_FUNCTION()