xref: /PHP-5.3/ext/soap/php_xml.h (revision a2045ff3)
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