php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
documentfragment.c
Go to the documentation of this file.
1/*
2 +----------------------------------------------------------------------+
3 | Copyright (c) The PHP Group |
4 +----------------------------------------------------------------------+
5 | This source file is subject to version 3.01 of the PHP license, |
6 | that is bundled with this package in the file LICENSE, and is |
7 | available through the world-wide-web at the following url: |
8 | https://www.php.net/license/3_01.txt |
9 | If you did not receive a copy of the PHP license and are unable to |
10 | obtain it through the world-wide-web, please send a note to |
11 | license@php.net so we can mail you a copy immediately. |
12 +----------------------------------------------------------------------+
13 | Authors: Christian Stocker <chregu@php.net> |
14 | Rob Richards <rrichards@php.net> |
15 +----------------------------------------------------------------------+
16*/
17
18#ifdef HAVE_CONFIG_H
19#include <config.h>
20#endif
21
22#include "php.h"
23#if defined(HAVE_LIBXML) && defined(HAVE_DOM)
24#include "php_dom.h"
25
26/*
27* class DOMDocumentFragment extends DOMNode
28*
29* URL: https://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-B63ED1A3
30* Since:
31*/
32
33/* {{{ */
35{
36 xmlNodePtr nodep = NULL, oldnode = NULL;
37 dom_object *intern;
38
41 }
42
43 nodep = xmlNewDocFragment(NULL);
44
45 if (!nodep) {
48 }
49
50 intern = Z_DOMOBJ_P(ZEND_THIS);
51 oldnode = dom_object_get_node(intern);
52 if (oldnode != NULL) {
53 php_libxml_node_decrement_resource((php_libxml_node_object *)intern);
54 }
55 php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, (void *)intern);
56}
57/* }}} end DOMDocumentFragment::__construct */
58
59/* {{{ */
61 zval *id;
62 xmlNode *nodep;
63 dom_object *intern;
64 char *data = NULL;
65 size_t data_len = 0;
66 int err;
67 xmlNodePtr lst;
68
69 id = ZEND_THIS;
70 if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &data, &data_len) == FAILURE) {
72 }
73
74 DOM_GET_OBJ(nodep, id, xmlNodePtr, intern);
75
76 if (dom_node_is_read_only(nodep) == SUCCESS) {
79 }
80
81 if (data) {
82 PHP_LIBXML_SANITIZE_GLOBALS(parse);
83 err = xmlParseBalancedChunkMemory(nodep->doc, NULL, NULL, 0, BAD_CAST data, &lst);
84 PHP_LIBXML_RESTORE_GLOBALS(parse);
85 if (err != 0) {
87 }
88
89 xmlAddChildList(nodep,lst);
90 }
91
93}
94/* }}} */
95
96#endif
void php_dom_throw_error(dom_exception_code error_code, bool strict_error)
@ NO_MODIFICATION_ALLOWED_ERR
@ INVALID_STATE_ERR
char * err
Definition ffi.c:3029
#define NULL
Definition gdcache.h:45
#define SUCCESS
Definition hash_sha3.c:261
#define PHP_METHOD
Definition php.h:365
bool dom_get_strict_error(php_libxml_ref_obj *document)
#define DOM_GET_OBJ(__ptr, __id, __prtype, __intern)
Definition php_dom.h:237
int dom_node_is_read_only(const xmlNode *node)
zend_constant * data
php_libxml_ref_obj * document
Definition xml_common.h:27
PHP_DOM_EXPORT xmlNodePtr dom_object_get_node(dom_object *obj)
struct _dom_object dom_object
#define Z_DOMOBJ_P(zv)
Definition xml_common.h:36
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec,...)
Definition zend_API.c:1300
#define ZEND_NUM_ARGS()
Definition zend_API.h:530
#define RETURN_FALSE
Definition zend_API.h:1058
#define zend_parse_parameters_none()
Definition zend_API.h:353
#define RETURN_THROWS()
Definition zend_API.h:1060
#define ZEND_THIS
Definition zend_API.h:523
#define RETURN_TRUE
Definition zend_API.h:1059
struct _zval_struct zval
@ FAILURE
Definition zend_types.h:61