php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
node.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018-2021 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
7#ifndef LEXBOR_DOM_NODE_H
8#define LEXBOR_DOM_NODE_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
17
18
21
22
40
43
44 /* For example: <LalAla:DiV Fix:Me="value"> */
45
46 uintptr_t local_name; /* , lowercase, without prefix: div */
47 uintptr_t prefix; /* lowercase: lalala */
48 uintptr_t ns; /* namespace */
49
51
57 void *user;
58
60
61 size_t line;
62
63#ifdef LXB_DOM_NODE_USER_VARIABLES
64 LXB_DOM_NODE_USER_VARIABLES
65#endif /* LXB_DOM_NODE_USER_VARIABLES */
66};
67
68
71
74 const lxb_dom_node_t *node, bool is_attr);
75
78
81 const lxb_dom_node_t *src, bool is_attr);
82
85
88
90lxb_dom_node_clone(lxb_dom_node_t *node, bool deep);
91
92LXB_API const lxb_char_t *
94
95LXB_API void
97
98LXB_API void
100
101LXB_API void
103
104LXB_API void
106
107LXB_API void
109
110LXB_API void
112
113LXB_API void
115
116LXB_API void
118
121
122LXB_API void
124 lxb_dom_node_simple_walker_f walker_cb, void *ctx);
125
128 const lxb_char_t *qualified_name, size_t len);
131 lxb_dom_collection_t *collection,
132 const lxb_char_t *class_name, size_t len);
135 const lxb_char_t *qualified_name, size_t qname_len,
136 const lxb_char_t *value, size_t value_len,
137 bool case_insensitive);
140 lxb_dom_collection_t *collection,
141 const lxb_char_t *qualified_name, size_t qname_len,
142 const lxb_char_t *value, size_t value_len,
143 bool case_insensitive);
146 const lxb_char_t *qualified_name, size_t qname_len,
147 const lxb_char_t *value, size_t value_len,
148 bool case_insensitive);
151 lxb_dom_collection_t *collection,
152 const lxb_char_t *qualified_name, size_t qname_len,
153 const lxb_char_t *value, size_t value_len,
154 bool case_insensitive);
155
156/*
157 * Memory of returns value will be freed in document destroy moment.
158 * If you need to release returned resource after use, then call the
159 * lxb_dom_document_destroy_text(node->owner_document, text) function.
160 */
163
166 const lxb_char_t *content, size_t len);
167
168LXB_API bool
170
171
172/*
173 * Inline functions
174 */
177{
178 return node->local_name;
179}
180
183{
184 return node->next;
185}
186
189{
190 return node->prev;
191}
192
195{
196 return node->parent;
197}
198
201{
202 return node->first_child;
203}
204
207{
208 return node->last_child;
209}
210
211/*
212 * No inline functions for ABI.
213 */
216
219
222
225
228
231
232
233#ifdef __cplusplus
234} /* extern "C" */
235#endif
236
237#endif /* LEXBOR_DOM_NODE_H */
size_t len
Definition apprentice.c:174
lexbor_action_t
Definition base.h:73
#define LXB_API
Definition def.h:48
struct lxb_dom_document lxb_dom_document_t
Definition interface.h:41
struct lxb_dom_event_target lxb_dom_event_target_t
Definition interface.h:37
struct lxb_dom_node lxb_dom_node_t
Definition interface.h:38
LXB_API bool lxb_dom_node_is_empty(const lxb_dom_node_t *root)
Definition node.c:1242
LXB_API const lxb_char_t * lxb_dom_node_name(lxb_dom_node_t *node, size_t *len)
Definition node.c:302
lxb_inline lxb_dom_node_t * lxb_dom_node_prev(lxb_dom_node_t *node)
Definition node.h:188
LXB_API lxb_char_t * lxb_dom_node_text_content(lxb_dom_node_t *node, size_t *len)
Definition node.c:1085
LXB_API lxb_status_t lxb_dom_node_by_attr_end(lxb_dom_node_t *root, lxb_dom_collection_t *collection, const lxb_char_t *qualified_name, size_t qname_len, const lxb_char_t *value, size_t value_len, bool case_insensitive)
Definition node.c:870
LXB_API lxb_status_t lxb_dom_node_by_attr_contain(lxb_dom_node_t *root, lxb_dom_collection_t *collection, const lxb_char_t *qualified_name, size_t qname_len, const lxb_char_t *value, size_t value_len, bool case_insensitive)
Definition node.c:905
LXB_API lxb_dom_node_t * lxb_dom_node_destroy_deep(lxb_dom_node_t *root)
Definition node.c:260
lxb_inline lxb_tag_id_t lxb_dom_node_tag_id(lxb_dom_node_t *node)
Definition node.h:176
lexbor_action_t(* lxb_dom_node_simple_walker_f)(lxb_dom_node_t *node, void *ctx)
Definition node.h:20
LXB_API lxb_dom_node_t * lxb_dom_node_last_child_noi(lxb_dom_node_t *node)
Definition node.c:1317
lxb_dom_node_type_t
Definition node.h:23
@ LXB_DOM_NODE_TYPE_ENTITY
Definition node.h:30
@ LXB_DOM_NODE_TYPE_NOTATION
Definition node.h:36
@ LXB_DOM_NODE_TYPE_COMMENT
Definition node.h:32
@ LXB_DOM_NODE_TYPE_CDATA_SECTION
Definition node.h:28
@ LXB_DOM_NODE_TYPE_PROCESSING_INSTRUCTION
Definition node.h:31
@ LXB_DOM_NODE_TYPE_UNDEF
Definition node.h:24
@ LXB_DOM_NODE_TYPE_DOCUMENT
Definition node.h:33
@ LXB_DOM_NODE_TYPE_DOCUMENT_FRAGMENT
Definition node.h:35
@ LXB_DOM_NODE_TYPE_DOCUMENT_TYPE
Definition node.h:34
@ LXB_DOM_NODE_TYPE_ATTRIBUTE
Definition node.h:26
@ LXB_DOM_NODE_TYPE_ENTITY_REFERENCE
Definition node.h:29
@ LXB_DOM_NODE_TYPE_LAST_ENTRY
Definition node.h:37
@ LXB_DOM_NODE_TYPE_ELEMENT
Definition node.h:25
@ LXB_DOM_NODE_TYPE_TEXT
Definition node.h:27
lxb_inline lxb_dom_node_t * lxb_dom_node_parent(lxb_dom_node_t *node)
Definition node.h:194
LXB_API lxb_dom_node_t * lxb_dom_node_next_noi(lxb_dom_node_t *node)
Definition node.c:1293
LXB_API void lxb_dom_node_insert_child_wo_events(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:368
LXB_API lxb_status_t lxb_dom_node_by_attr_begin(lxb_dom_node_t *root, lxb_dom_collection_t *collection, const lxb_char_t *qualified_name, size_t qname_len, const lxb_char_t *value, size_t value_len, bool case_insensitive)
Definition node.c:833
LXB_API void lxb_dom_node_insert_after_wo_events(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:424
LXB_API void lxb_dom_node_insert_child(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:385
LXB_API void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:442
LXB_API lxb_status_t lxb_dom_node_by_tag_name(lxb_dom_node_t *root, lxb_dom_collection_t *collection, const lxb_char_t *qualified_name, size_t len)
Definition node.c:626
LXB_API lxb_dom_node_t * lxb_dom_node_interface_create(lxb_dom_document_t *document)
Definition node.c:89
LXB_API void lxb_dom_node_simple_walk(lxb_dom_node_t *root, lxb_dom_node_simple_walker_f walker_cb, void *ctx)
Definition node.c:500
LXB_API lxb_dom_node_t * lxb_dom_node_prev_noi(lxb_dom_node_t *node)
Definition node.c:1299
LXB_API lxb_dom_node_t * lxb_dom_node_destroy(lxb_dom_node_t *node)
Definition node.c:248
LXB_API lxb_status_t lxb_dom_node_text_content_set(lxb_dom_node_t *node, const lxb_char_t *content, size_t len)
Definition node.c:1198
LXB_API lxb_tag_id_t lxb_dom_node_tag_id_noi(lxb_dom_node_t *node)
Definition node.c:1287
LXB_API void lxb_dom_node_remove(lxb_dom_node_t *node)
Definition node.c:478
LXB_API lxb_status_t lxb_dom_node_by_attr(lxb_dom_node_t *root, lxb_dom_collection_t *collection, const lxb_char_t *qualified_name, size_t qname_len, const lxb_char_t *value, size_t value_len, bool case_insensitive)
Definition node.c:797
LXB_API lxb_dom_node_t * lxb_dom_node_parent_noi(lxb_dom_node_t *node)
Definition node.c:1305
LXB_API void lxb_dom_node_insert_before(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:414
LXB_API lxb_dom_node_t * lxb_dom_node_interface_destroy(lxb_dom_node_t *node)
Definition node.c:124
LXB_API lxb_dom_node_t * lxb_dom_node_clone(lxb_dom_node_t *node, bool deep)
Definition node.c:296
LXB_API void lxb_dom_node_insert_before_wo_events(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:395
LXB_API lxb_dom_node_t * lxb_dom_node_first_child_noi(lxb_dom_node_t *node)
Definition node.c:1311
LXB_API lxb_status_t lxb_dom_node_by_class_name(lxb_dom_node_t *root, lxb_dom_collection_t *collection, const lxb_char_t *class_name, size_t len)
Definition node.c:697
LXB_API lxb_status_t lxb_dom_node_replace_all(lxb_dom_node_t *parent, lxb_dom_node_t *node)
Definition node.c:488
lxb_inline lxb_dom_node_t * lxb_dom_node_last_child(lxb_dom_node_t *node)
Definition node.h:206
lxb_inline lxb_dom_node_t * lxb_dom_node_first_child(lxb_dom_node_t *node)
Definition node.h:200
LXB_API lxb_status_t lxb_dom_node_interface_copy(lxb_dom_node_t *dst, const lxb_dom_node_t *src, bool is_attr)
Definition node.c:136
lxb_inline lxb_dom_node_t * lxb_dom_node_next(lxb_dom_node_t *node)
Definition node.h:182
LXB_API lxb_dom_node_t * lxb_dom_node_interface_clone(lxb_dom_document_t *document, const lxb_dom_node_t *node, bool is_attr)
Definition node.c:106
LXB_API void lxb_dom_node_remove_wo_events(lxb_dom_node_t *node)
Definition node.c:452
lxb_dom_node_t * prev
Definition node.h:53
void * user
Definition node.h:57
uintptr_t ns
Definition node.h:48
lxb_dom_node_t * first_child
Definition node.h:55
lxb_dom_document_t * owner_document
Definition node.h:50
uintptr_t prefix
Definition node.h:47
lxb_dom_node_t * last_child
Definition node.h:56
lxb_dom_event_target_t event_target
Definition node.h:42
lxb_dom_node_type_t type
Definition node.h:59
size_t line
Definition node.h:61
uintptr_t local_name
Definition node.h:46
lxb_dom_node_t * parent
Definition node.h:54
lxb_dom_node_t * next
Definition node.h:52
uintptr_t lxb_tag_id_t
Definition const.h:21
unsigned int lxb_status_t
Definition types.h:28
#define lxb_inline
Definition types.h:21
unsigned char lxb_char_t
Definition types.h:27
value