1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 5 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2013 The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Authors: Brad Lafountain <rodif_bl@yahoo.com> | 16 | Shane Caraveo <shane@caraveo.com> | 17 | Dmitry Stogov <dmitry@zend.com> | 18 +----------------------------------------------------------------------+ 19 */ 20 /* $Id$ */ 21 22 #ifndef PHP_SOAP_XML_H 23 #define PHP_SOAP_XML_H 24 25 #define get_attribute(node, name) get_attribute_ex(node, name, NULL) 26 #define get_node(node, name) get_node_ex(node, name, NULL) 27 #define get_node_recursive(node, name) get_node_recursive_ex(node, name, NULL) 28 #define get_node_with_attribute(node, name, attr, val) get_node_with_attribute_ex(node, name, NULL, attr, val, NULL) 29 #define get_node_with_attribute_recursive(node, name, attr, val) get_node_with_attribute_recursive_ex(node, name, NULL, attr, val, NULL) 30 #define node_is_equal(node, name) node_is_equal_ex(node, name, NULL) 31 #define attr_is_equal(node, name) attr_is_equal_ex(node, name, NULL) 32 33 xmlDocPtr soap_xmlParseFile(const char *filename TSRMLS_DC); 34 xmlDocPtr soap_xmlParseMemory(const void *buf, size_t size); 35 36 xmlNsPtr attr_find_ns(xmlAttrPtr node); 37 xmlNsPtr node_find_ns(xmlNodePtr node); 38 int attr_is_equal_ex(xmlAttrPtr node, char *name, char *ns); 39 int node_is_equal_ex(xmlNodePtr node, char *name, char *ns); 40 xmlAttrPtr get_attribute_ex(xmlAttrPtr node,char *name, char *ns); 41 xmlNodePtr get_node_ex(xmlNodePtr node,char *name, char *ns); 42 xmlNodePtr get_node_recursive_ex(xmlNodePtr node,char *name, char *ns); 43 xmlNodePtr get_node_with_attribute_ex(xmlNodePtr node, char *name, char *name_ns, char *attribute, char *value, char *attr_ns); 44 xmlNodePtr get_node_with_attribute_recursive_ex(xmlNodePtr node, char *name, char *name_ns, char *attribute, char *value, char *attr_ns); 45 int parse_namespace(const xmlChar *inval,char **value,char **namespace); 46 47 #ifndef ZEND_ENGINE_2 48 int php_stream_xmlIO_match_wrapper(const char *filename); 49 void *php_stream_xmlIO_open_wrapper(const char *filename); 50 int php_stream_xmlIO_read(void *context, char *buffer, int len); 51 int php_stream_xmlIO_close(void *context); 52 #endif 53 54 #define FOREACHATTRNODE(n,c,i) FOREACHATTRNODEEX(n,c,NULL,i) 55 #define FOREACHATTRNODEEX(n,c,ns,i) \ 56 do { \ 57 if (n == NULL) { \ 58 break; \ 59 } \ 60 if (c) { \ 61 i = get_attribute_ex(n,c,ns); \ 62 } else { \ 63 i = n; \ 64 } \ 65 if (i != NULL) { \ 66 n = i; 67 68 #define FOREACHNODE(n,c,i) FOREACHNODEEX(n,c,NULL,i) 69 #define FOREACHNODEEX(n,c,ns,i) \ 70 do { \ 71 if (n == NULL) { \ 72 break; \ 73 } \ 74 if (c) { \ 75 i = get_node_ex(n,c,NULL); \ 76 } else { \ 77 i = n; \ 78 } \ 79 if(i != NULL) { \ 80 n = i; 81 82 #define ENDFOREACH(n) \ 83 } \ 84 } while ((n = n->next)); 85 86 #endif 87