Lines Matching refs:sxe

53 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data);
54 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data);
65 static void _node_as_zval(php_sxe_object *sxe, xmlNodePtr node, zval *value, SXE_ITER itertype, cha… in _node_as_zval() argument
69 subnode = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in _node_as_zval()
70 subnode->document = sxe->document; in _node_as_zval()
96 static xmlNodePtr php_sxe_get_first_node(php_sxe_object *sxe, xmlNodePtr node) /* {{{ */ in php_sxe_get_first_node() argument
101 if (sxe && sxe->iter.type != SXE_ITER_NONE) { in php_sxe_get_first_node()
102 php_sxe_reset_iterator(sxe, 1); in php_sxe_get_first_node()
103 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_get_first_node()
104 intern = Z_SXEOBJ_P(&sxe->iter.data); in php_sxe_get_first_node()
114 static inline int match_ns(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name, int prefix) /* {{{ … in match_ns() argument
128 static xmlNodePtr sxe_get_element_by_offset(php_sxe_object *sxe, zend_long offset, xmlNodePtr node,… in sxe_get_element_by_offset() argument
132 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_offset()
144 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_offset()
145 if (sxe->iter.type == SXE_ITER_CHILD || ( in sxe_get_element_by_offset()
146 sxe->iter.type == SXE_ITER_ELEMENT && !xmlStrcmp(node->name, sxe->iter.name))) { in sxe_get_element_by_offset()
165 static xmlNodePtr sxe_find_element_by_name(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name) /* … in sxe_find_element_by_name() argument
169 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_find_element_by_name()
180 static xmlNodePtr sxe_get_element_by_name(php_sxe_object *sxe, xmlNodePtr node, char **name, SXE_IT… in sxe_get_element_by_name() argument
186 if (sxe->iter.type != SXE_ITER_ATTRLIST) in sxe_get_element_by_name()
188 orgtype = sxe->iter.type; in sxe_get_element_by_name()
189 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_get_element_by_name()
190 sxe->iter.type = SXE_ITER_CHILD; in sxe_get_element_by_name()
192 node = php_sxe_get_first_node(sxe, node); in sxe_get_element_by_name()
193 sxe->iter.type = orgtype; in sxe_get_element_by_name()
196 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_element_by_name()
197 orgnode = sxe_find_element_by_name(sxe, node, sxe->iter.name); in sxe_get_element_by_name()
206 …if (node->type == XML_ELEMENT_NODE && match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefix))… in sxe_get_element_by_name()
235 php_sxe_object *sxe; in sxe_prop_dim_read() local
243 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_read()
246 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
255 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
270 GET_NODE(sxe, node); in sxe_prop_dim_read()
272 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
275 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
277 test = sxe->iter.name != NULL; in sxe_prop_dim_read()
278 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_read()
279 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
294 if (Z_TYPE_P(member) != IS_LONG || sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_read()
297 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_read()
299 …_node_as_zval(sxe, (xmlNodePtr) attr, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.ispre… in sxe_prop_dim_read()
308 …rcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)name) && match_ns(sxe, (xml… in sxe_prop_dim_read()
309 …_node_as_zval(sxe, (xmlNodePtr) attr, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.ispre… in sxe_prop_dim_read()
319 if (!sxe->node) { in sxe_prop_dim_read()
320 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, node, NULL); in sxe_prop_dim_read()
326 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_read()
327 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_read()
329 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_read()
334 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_read()
339 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
345 _node_as_zval(sxe, node, rv, SXE_ITER_NONE, NULL, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
349 if (type != BP_VAR_IS || sxe_find_element_by_name(sxe, node->children, (xmlChar *) name)) { in sxe_prop_dim_read()
350 _node_as_zval(sxe, node, rv, SXE_ITER_ELEMENT, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_prop_dim_read()
433 php_sxe_object *sxe; in sxe_prop_dim_write() local
449 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_write()
452 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
464 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
487 GET_NODE(sxe, node); in sxe_prop_dim_write()
489 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_write()
492 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
494 test = sxe->iter.name != NULL; in sxe_prop_dim_write()
495 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_dim_write()
497 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_write()
509 if (attribs && !node && sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_dim_write()
510 node = xmlNewChild(mynode, mynode->ns, sxe->iter.name, NULL); in sxe_prop_dim_write()
553 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_write()
565 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_write()
586 if (sxe->iter.type == SXE_ITER_NONE) { in sxe_prop_dim_write()
594 newnode = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt); in sxe_prop_dim_write()
604 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_write()
684 php_sxe_object *sxe; in sxe_property_get_adr() local
690 sxe = Z_SXEOBJ_P(object); in sxe_property_get_adr()
692 GET_NODE(sxe, node); in sxe_property_get_adr()
695 node = sxe_get_element_by_name(sxe, node, &name, &type); in sxe_property_get_adr()
705 _node_as_zval(sxe, node, &ret, type, name, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_property_get_adr()
707 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_property_get_adr()
708 zval_ptr_dtor(&sxe->tmp); in sxe_property_get_adr()
711 ZVAL_COPY_VALUE(&sxe->tmp, &ret); in sxe_property_get_adr()
713 return &sxe->tmp; in sxe_property_get_adr()
721 php_sxe_object *sxe; in sxe_prop_dim_exists() local
733 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_exists()
735 GET_NODE(sxe, node); in sxe_prop_dim_exists()
738 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
741 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
742 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
747 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_exists()
750 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
752 test = sxe->iter.name != NULL; in sxe_prop_dim_exists()
753 } else 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()
765 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_exists()
776 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_exists()
793 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_exists()
794 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_exists()
796 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_exists()
798 node = sxe_find_element_by_name(sxe, node->children, (xmlChar *)Z_STRVAL_P(member)); in sxe_prop_dim_exists()
839 php_sxe_object *sxe; in sxe_prop_dim_delete() local
852 sxe = Z_SXEOBJ_P(object); in sxe_prop_dim_delete()
854 GET_NODE(sxe, node); in sxe_prop_dim_delete()
857 if (sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
860 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
861 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
866 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in sxe_prop_dim_delete()
869 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
871 test = sxe->iter.name != NULL; in sxe_prop_dim_delete()
872 } else 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()
884 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->ite… in sxe_prop_dim_delete()
897 …tr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sx… in sxe_prop_dim_delete()
909 if (sxe->iter.type == SXE_ITER_CHILD) { in sxe_prop_dim_delete()
910 node = php_sxe_get_first_node(sxe, node); in sxe_prop_dim_delete()
912 node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL); in sxe_prop_dim_delete()
924 …cmp(node->name, (xmlChar *)Z_STRVAL_P(member)) && match_ns(sxe, node, sxe->iter.nsprefix, sxe->ite… in sxe_prop_dim_delete()
1028 php_sxe_object *sxe; in sxe_prop_is_empty() local
1035 sxe = Z_SXEOBJ_P(object); in sxe_prop_is_empty()
1037 GET_NODE(sxe, node); in sxe_prop_is_empty()
1042 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_prop_is_empty()
1043 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1047 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_prop_is_empty()
1049 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_prop_is_empty()
1056 GET_NODE(sxe, node); in sxe_prop_is_empty()
1057 node = php_sxe_get_first_node(sxe, node); in sxe_prop_is_empty()
1060 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_prop_is_empty()
1063 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_prop_is_empty()
1064 …if (sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || node->children->next ||… in sxe_prop_is_empty()
1067 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_prop_is_empty()
1068 ZVAL_UNDEF(&sxe->iter.data); in sxe_prop_is_empty()
1069 node = php_sxe_reset_iterator(sxe, 0); in sxe_prop_is_empty()
1087 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_prop_is_empty()
1099 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_prop_is_empty()
1107 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_prop_is_empty()
1108 zval_ptr_dtor(&sxe->iter.data); in sxe_prop_is_empty()
1110 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_prop_is_empty()
1122 php_sxe_object *sxe; in sxe_get_prop_hash() local
1133 sxe = Z_SXEOBJ_P(object); in sxe_get_prop_hash()
1138 } else if (sxe->properties) { in sxe_get_prop_hash()
1139 zend_hash_clean(sxe->properties); in sxe_get_prop_hash()
1140 rv = sxe->properties; in sxe_get_prop_hash()
1144 sxe->properties = rv; in sxe_get_prop_hash()
1147 GET_NODE(sxe, node); in sxe_get_prop_hash()
1151 if (is_debug || sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1152 if (sxe->iter.type == SXE_ITER_ELEMENT) { in sxe_get_prop_hash()
1153 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1158 test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST; in sxe_get_prop_hash()
1160 …if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter… in sxe_get_prop_hash()
1161 ZVAL_STR(&value, sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1)); in sxe_get_prop_hash()
1174 GET_NODE(sxe, node); in sxe_get_prop_hash()
1175 node = php_sxe_get_first_node(sxe, node); in sxe_get_prop_hash()
1177 if (node && sxe->iter.type != SXE_ITER_ATTRLIST) { in sxe_get_prop_hash()
1182 } else if (sxe->iter.type != SXE_ITER_CHILD) { in sxe_get_prop_hash()
1184 …if ( sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || !node->next || node->c… in sxe_get_prop_hash()
1187 ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); in sxe_get_prop_hash()
1188 ZVAL_UNDEF(&sxe->iter.data); in sxe_get_prop_hash()
1190 node = php_sxe_reset_iterator(sxe, 0); in sxe_get_prop_hash()
1211 …if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix, sxe->iter.isprefi… in sxe_get_prop_hash()
1222 _get_base_node_value(sxe, node, &value, sxe->iter.nsprefix, sxe->iter.isprefix); in sxe_get_prop_hash()
1231 node = php_sxe_iterator_fetch(sxe, node->next, 0); in sxe_get_prop_hash()
1239 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_get_prop_hash()
1240 zval_ptr_dtor(&sxe->iter.data); in sxe_get_prop_hash()
1242 ZVAL_COPY_VALUE(&sxe->iter.data, &iter_data); in sxe_get_prop_hash()
1250 php_sxe_object *sxe; in sxe_get_gc() local
1251 sxe = Z_SXEOBJ_P(object); in sxe_get_gc()
1255 return sxe->properties; in sxe_get_gc()
1297 php_sxe_object *sxe; in SXE_METHOD() local
1312 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1314 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1318 if (!sxe->xpath) { in SXE_METHOD()
1319 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1321 if (!sxe->node) { in SXE_METHOD()
1322 …php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement((xmlDocPtr) sxe-… in SXE_METHOD()
1323 if (!sxe->node) { in SXE_METHOD()
1328 nodeptr = php_sxe_get_first_node(sxe, sxe->node->node); in SXE_METHOD()
1330 sxe->xpath->node = nodeptr; in SXE_METHOD()
1332 ns = xmlGetNsList((xmlDocPtr) sxe->document->ptr, nodeptr); in SXE_METHOD()
1339 sxe->xpath->namespaces = ns; in SXE_METHOD()
1340 sxe->xpath->nsNr = nsnbr; in SXE_METHOD()
1342 retval = xmlXPathEval((xmlChar *)query, sxe->xpath); in SXE_METHOD()
1345 sxe->xpath->namespaces = NULL; in SXE_METHOD()
1346 sxe->xpath->nsNr = 0; in SXE_METHOD()
1367 _node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_NONE, NULL, NULL, 0); in SXE_METHOD()
1369 …_node_as_zval(sxe, nodeptr->parent, &value, SXE_ITER_ATTRLIST, (char*)nodeptr->name, nodeptr->ns ?… in SXE_METHOD()
1371 _node_as_zval(sxe, nodeptr, &value, SXE_ITER_NONE, NULL, NULL, 0); in SXE_METHOD()
1387 php_sxe_object *sxe; in SXE_METHOD() local
1395 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1396 if (!sxe->xpath) { in SXE_METHOD()
1397 sxe->xpath = xmlXPathNewContext((xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1400 if (xmlXPathRegisterNs(sxe->xpath, (xmlChar *)prefix, (xmlChar *)ns_uri) != 0) { in SXE_METHOD()
1412 php_sxe_object *sxe; in SXE_METHOD() local
1429 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1430 GET_NODE(sxe, node); in SXE_METHOD()
1431 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1436 bytes = xmlSaveFile(filename, (xmlDocPtr) sxe->document->ptr); in SXE_METHOD()
1449 xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, NULL); in SXE_METHOD()
1458 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1459 GET_NODE(sxe, node); in SXE_METHOD()
1460 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1464 …xmlDocDumpMemoryEnc((xmlDocPtr) sxe->document->ptr, &strval, &strval_len, (const char *) ((xmlDocP… in SXE_METHOD()
1481 …xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, (const char *) ((xmlDocPtr) in SXE_METHOD()
1519 static void sxe_add_namespaces(php_sxe_object *sxe, xmlNodePtr node, zend_bool recursive, zval *ret… in sxe_add_namespaces() argument
1539 sxe_add_namespaces(sxe, node, recursive, return_value); in sxe_add_namespaces()
1551 php_sxe_object *sxe; in SXE_METHOD() local
1560 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1561 GET_NODE(sxe, node); in SXE_METHOD()
1562 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1566 sxe_add_namespaces(sxe, node, recursive, return_value); in SXE_METHOD()
1574 static void sxe_add_registered_namespaces(php_sxe_object *sxe, xmlNodePtr node, zend_bool recursive… in sxe_add_registered_namespaces() argument
1587 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in sxe_add_registered_namespaces()
1600 php_sxe_object *sxe; in SXE_METHOD() local
1607 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1609 node = xmlDocGetRootElement((xmlDocPtr)sxe->document->ptr); in SXE_METHOD()
1611 GET_NODE(sxe, node); in SXE_METHOD()
1619 sxe_add_registered_namespaces(sxe, node, recursive, return_value); in SXE_METHOD()
1627 php_sxe_object *sxe; in SXE_METHOD() local
1637 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1639 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1643 GET_NODE(sxe, node); in SXE_METHOD()
1644 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1646 _node_as_zval(sxe, node, return_value, SXE_ITER_CHILD, NULL, (xmlChar *)nsprefix, isprefix); in SXE_METHOD()
1655 php_sxe_object *sxe; in SXE_METHOD() local
1659 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1661 GET_NODE(sxe, node); in SXE_METHOD()
1662 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1676 php_sxe_object *sxe; in SXE_METHOD() local
1686 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1687 GET_NODE(sxe, node); in SXE_METHOD()
1689 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1693 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1695 _node_as_zval(sxe, node, return_value, SXE_ITER_ATTRLIST, NULL, (xmlChar *)nsprefix, isprefix); in SXE_METHOD()
1703 php_sxe_object *sxe; in SXE_METHOD() local
1720 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1721 GET_NODE(sxe, node); in SXE_METHOD()
1723 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in SXE_METHOD()
1728 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1755 _node_as_zval(sxe, newnode, return_value, SXE_ITER_NONE, (char *)localname, prefix, 0); in SXE_METHOD()
1768 php_sxe_object *sxe; in SXE_METHOD() local
1786 sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD()
1787 GET_NODE(sxe, node); in SXE_METHOD()
1789 node = php_sxe_get_first_node(sxe, node); in SXE_METHOD()
1872 php_sxe_object *sxe; in sxe_object_cast_ex() local
1877 sxe = Z_SXEOBJ_P(readobj); in sxe_object_cast_ex()
1880 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1889 if (sxe->iter.type != SXE_ITER_NONE) { in sxe_object_cast_ex()
1890 node = php_sxe_get_first_node(sxe, NULL); in sxe_object_cast_ex()
1892 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, node->children, 1); in sxe_object_cast_ex()
1895 if (!sxe->node) { in sxe_object_cast_ex()
1896 if (sxe->document) { in sxe_object_cast_ex()
1897 …php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement((xmlDocPtr) sxe-… in sxe_object_cast_ex()
1901 if (sxe->node && sxe->node->node) { in sxe_object_cast_ex()
1902 if (sxe->node->node->children) { in sxe_object_cast_ex()
1903 contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, sxe->node->node->children, 1); in sxe_object_cast_ex()
1946 static int php_sxe_count_elements_helper(php_sxe_object *sxe, zend_long *count) /* {{{ */ in php_sxe_count_elements_helper() argument
1953 ZVAL_COPY_VALUE(&data, &sxe->iter.data); in php_sxe_count_elements_helper()
1954 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_count_elements_helper()
1956 node = php_sxe_reset_iterator(sxe, 0); in php_sxe_count_elements_helper()
1961 node = php_sxe_iterator_fetch(sxe, node->next, 0); in php_sxe_count_elements_helper()
1964 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_count_elements_helper()
1965 zval_ptr_dtor(&sxe->iter.data); in php_sxe_count_elements_helper()
1967 ZVAL_COPY_VALUE(&sxe->iter.data, &data); in php_sxe_count_elements_helper()
1996 php_sxe_object *sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD() local
2002 php_sxe_count_elements_helper(sxe, &count); in SXE_METHOD()
2053 php_sxe_object *sxe = Z_SXEOBJ_P(object); in sxe_object_clone() local
2058 clone = php_sxe_object_new(sxe->zo.ce, sxe->fptr_count); in sxe_object_clone()
2059 clone->document = sxe->document; in sxe_object_clone()
2065 clone->iter.isprefix = sxe->iter.isprefix; in sxe_object_clone()
2066 if (sxe->iter.name != NULL) { in sxe_object_clone()
2067 clone->iter.name = (xmlChar*)estrdup((char*)sxe->iter.name); in sxe_object_clone()
2069 if (sxe->iter.nsprefix != NULL) { in sxe_object_clone()
2070 clone->iter.nsprefix = (xmlChar*)estrdup((char*)sxe->iter.nsprefix); in sxe_object_clone()
2072 clone->iter.type = sxe->iter.type; in sxe_object_clone()
2074 if (sxe->node) { in sxe_object_clone()
2075 nodep = xmlDocCopyNode(sxe->node->node, docp, 1); in sxe_object_clone()
2089 php_sxe_object *sxe; in sxe_object_dtor() local
2091 sxe = php_sxe_fetch_object(object); in sxe_object_dtor()
2093 if (!Z_ISUNDEF(sxe->iter.data)) { in sxe_object_dtor()
2094 zval_ptr_dtor(&sxe->iter.data); in sxe_object_dtor()
2095 ZVAL_UNDEF(&sxe->iter.data); in sxe_object_dtor()
2098 if (sxe->iter.name) { in sxe_object_dtor()
2099 efree(sxe->iter.name); in sxe_object_dtor()
2100 sxe->iter.name = NULL; in sxe_object_dtor()
2102 if (sxe->iter.nsprefix) { in sxe_object_dtor()
2103 efree(sxe->iter.nsprefix); in sxe_object_dtor()
2104 sxe->iter.nsprefix = NULL; in sxe_object_dtor()
2106 if (!Z_ISUNDEF(sxe->tmp)) { in sxe_object_dtor()
2107 zval_ptr_dtor(&sxe->tmp); in sxe_object_dtor()
2108 ZVAL_UNDEF(&sxe->tmp); in sxe_object_dtor()
2117 php_sxe_object *sxe; in sxe_object_free_storage() local
2119 sxe = php_sxe_fetch_object(object); in sxe_object_free_storage()
2121 zend_object_std_dtor(&sxe->zo); in sxe_object_free_storage()
2123 php_libxml_node_decrement_resource((php_libxml_node_object *)sxe); in sxe_object_free_storage()
2125 if (sxe->xpath) { in sxe_object_free_storage()
2126 xmlXPathFreeContext(sxe->xpath); in sxe_object_free_storage()
2129 if (sxe->properties) { in sxe_object_free_storage()
2130 zend_hash_destroy(sxe->properties); in sxe_object_free_storage()
2131 FREE_HASHTABLE(sxe->properties); in sxe_object_free_storage()
2200 php_sxe_object *sxe; in PHP_FUNCTION() local
2232 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2233 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2234 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2235 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2236 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2238 ZVAL_OBJ(return_value, &sxe->zo); in PHP_FUNCTION()
2246 php_sxe_object *sxe; in PHP_FUNCTION() local
2286 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2287 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in PHP_FUNCTION()
2288 sxe->iter.isprefix = isprefix; in PHP_FUNCTION()
2289 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in PHP_FUNCTION()
2290 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in PHP_FUNCTION()
2292 ZVAL_OBJ(return_value, &sxe->zo); in PHP_FUNCTION()
2300 php_sxe_object *sxe = Z_SXEOBJ_P(getThis()); in SXE_METHOD() local
2327 ((php_libxml_node_object *)sxe)->document = NULL; in SXE_METHOD()
2332 sxe->iter.nsprefix = ns_len ? (xmlChar*)estrdup(ns) : NULL; in SXE_METHOD()
2333 sxe->iter.isprefix = isprefix; in SXE_METHOD()
2334 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, docp); in SXE_METHOD()
2335 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, xmlDocGetRootElement(docp), NULL); in SXE_METHOD()
2350 static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data) /* {{{… in php_sxe_iterator_fetch() argument
2352 xmlChar *prefix = sxe->iter.nsprefix; in php_sxe_iterator_fetch()
2353 int isprefix = sxe->iter.isprefix; in php_sxe_iterator_fetch()
2355 if (sxe->iter.type == SXE_ITER_ATTRLIST) { in php_sxe_iterator_fetch()
2356 if (sxe->iter.name) { in php_sxe_iterator_fetch()
2359 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2368 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2375 } else if (sxe->iter.type == SXE_ITER_ELEMENT && sxe->iter.name) { in php_sxe_iterator_fetch()
2378 if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2387 if (match_ns(sxe, node, prefix, isprefix)) { in php_sxe_iterator_fetch()
2396 _node_as_zval(sxe, node, &sxe->iter.data, SXE_ITER_NONE, NULL, prefix, isprefix); in php_sxe_iterator_fetch()
2403 static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data) /* {{{ */ in php_sxe_reset_iterator() argument
2407 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_reset_iterator()
2408 zval_ptr_dtor(&sxe->iter.data); in php_sxe_reset_iterator()
2409 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_reset_iterator()
2412 GET_NODE(sxe, node) in php_sxe_reset_iterator()
2415 switch (sxe->iter.type) { in php_sxe_reset_iterator()
2424 return php_sxe_iterator_fetch(sxe, node, use_data); in php_sxe_reset_iterator()
2442 iterator->sxe = Z_SXEOBJ_P(object); in php_sxe_get_iterator()
2463 return Z_ISUNDEF(iterator->sxe->iter.data) ? FAILURE : SUCCESS; in php_sxe_iterator_valid()
2471 return &iterator->sxe->iter.data; in php_sxe_iterator_current_data()
2478 zval *curobj = &iterator->sxe->iter.data; in php_sxe_iterator_current_key()
2494 PHP_SXE_API void php_sxe_move_forward_iterator(php_sxe_object *sxe) /* {{{ */ in php_sxe_move_forward_iterator() argument
2499 if (!Z_ISUNDEF(sxe->iter.data)) { in php_sxe_move_forward_iterator()
2500 intern = Z_SXEOBJ_P(&sxe->iter.data); in php_sxe_move_forward_iterator()
2502 zval_ptr_dtor(&sxe->iter.data); in php_sxe_move_forward_iterator()
2503 ZVAL_UNDEF(&sxe->iter.data); in php_sxe_move_forward_iterator()
2507 php_sxe_iterator_fetch(sxe, node->next, 1); in php_sxe_move_forward_iterator()
2515 php_sxe_move_forward_iterator(iterator->sxe); in php_sxe_iterator_move_forward()
2521 php_sxe_object *sxe; in php_sxe_iterator_rewind() local
2524 sxe = iterator->sxe; in php_sxe_iterator_rewind()
2526 php_sxe_reset_iterator(sxe, 1); in php_sxe_iterator_rewind()
2532 php_sxe_object *sxe; in simplexml_export_node() local
2535 sxe = Z_SXEOBJ_P(object); in simplexml_export_node()
2536 GET_NODE(sxe, node); in simplexml_export_node()
2537 return php_sxe_get_first_node(sxe, node); in simplexml_export_node()
2545 php_sxe_object *sxe; in PHP_FUNCTION() local
2577 sxe = php_sxe_object_new(ce, fptr_count); in PHP_FUNCTION()
2578 sxe->document = object->document; in PHP_FUNCTION()
2579 php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, nodep->doc); in PHP_FUNCTION()
2580 php_libxml_increment_node_ptr((php_libxml_node_object *)sxe, nodep, NULL); in PHP_FUNCTION()
2582 ZVAL_OBJ(return_value, &sxe->zo); in PHP_FUNCTION()
2716 zend_class_entry sxe; in PHP_MINIT_FUNCTION() local
2718 INIT_CLASS_ENTRY(sxe, "SimpleXMLElement", sxe_functions); in PHP_MINIT_FUNCTION()
2719 sxe.create_object = sxe_object_new; in PHP_MINIT_FUNCTION()
2720 sxe_class_entry = zend_register_internal_class(&sxe); in PHP_MINIT_FUNCTION()
2736 PHP_MINIT(sxe)(INIT_FUNC_ARGS_PASSTHRU); in PHP_MINIT_FUNCTION() local