php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
interface.c
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
20
21
24 lxb_ns_id_t ns)
25{
26 lxb_dom_element_t *domel;
27
28 domel = lxb_dom_element_interface_create(document);
29 if (domel == NULL) {
30 return NULL;
31 }
32
33 domel->node.local_name = tag_id;
34 domel->node.ns = ns;
35
36 return domel;
37}
38
41 const lxb_dom_interface_t *intrfc)
42{
43 const lxb_dom_node_t *node = intrfc;
44
45 if (document == NULL) {
46 document = node->owner_document;
47 }
48
49 switch (node->type) {
51 return lxb_dom_element_interface_clone(document, intrfc);
52
54 return lxb_dom_text_interface_clone(document, intrfc);
55
58 intrfc);
60 return lxb_dom_comment_interface_clone(document, intrfc);
61
63 return lxb_dom_document_interface_clone(document, intrfc);
64
66 return lxb_dom_document_type_interface_clone(document, intrfc);
67
68 default:
69 return lxb_dom_node_interface_clone(document, node, false);
70 }
71}
72
lxb_dom_cdata_section_t * lxb_dom_cdata_section_interface_destroy(lxb_dom_cdata_section_t *cdata_section)
lxb_dom_document_fragment_t * lxb_dom_document_fragment_interface_destroy(lxb_dom_document_fragment_t *document_fragment)
lxb_dom_document_type_t * lxb_dom_document_type_interface_clone(lxb_dom_document_t *document, const lxb_dom_document_type_t *dtype)
lxb_dom_document_type_t * lxb_dom_document_type_interface_destroy(lxb_dom_document_type_t *document_type)
struct lxb_dom_document lxb_dom_document_t
Definition interface.h:41
struct lxb_dom_node lxb_dom_node_t
Definition interface.h:38
void lxb_dom_interface_t
Definition interface.h:51
struct lxb_dom_element lxb_dom_element_t
Definition interface.h:39
@ 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_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_ELEMENT
Definition node.h:25
@ LXB_DOM_NODE_TYPE_TEXT
Definition node.h:27
lxb_dom_interface_t * lxb_dom_interface_clone(lxb_dom_document_t *document, const lxb_dom_interface_t *intrfc)
Definition interface.c:40
lxb_dom_interface_t * lxb_dom_interface_destroy(lxb_dom_interface_t *intrfc)
Definition interface.c:74
lxb_dom_interface_t * lxb_dom_interface_create(lxb_dom_document_t *document, lxb_tag_id_t tag_id, lxb_ns_id_t ns)
Definition interface.c:23
#define NULL
Definition gdcache.h:45
lxb_dom_comment_t * lxb_dom_comment_interface_destroy(lxb_dom_comment_t *comment)
Definition comment.c:51
lxb_dom_comment_t * lxb_dom_comment_interface_clone(lxb_dom_document_t *document, const lxb_dom_comment_t *text)
Definition comment.c:31
lxb_dom_document_t * lxb_dom_document_interface_destroy(lxb_dom_document_t *document)
Definition document.c:54
lxb_dom_document_t * lxb_dom_document_interface_clone(lxb_dom_document_t *document, const lxb_dom_document_t *doc)
Definition document.c:35
lxb_dom_element_t * lxb_dom_element_interface_create(lxb_dom_document_t *document)
Definition element.c:33
lxb_dom_element_t * lxb_dom_element_interface_destroy(lxb_dom_element_t *element)
Definition element.c:70
lxb_dom_element_t * lxb_dom_element_interface_clone(lxb_dom_document_t *document, const lxb_dom_element_t *element)
Definition element.c:52
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_dom_text_t * lxb_dom_text_interface_clone(lxb_dom_document_t *document, const lxb_dom_text_t *text)
Definition text.c:31
lxb_dom_text_t * lxb_dom_text_interface_destroy(lxb_dom_text_t *text)
Definition text.c:51
void * lexbor_mraw_free(lexbor_mraw_t *mraw, void *data)
Definition mraw.c:392
uintptr_t lxb_ns_id_t
Definition const.h:20
lxb_dom_processing_instruction_t * lxb_dom_processing_instruction_interface_clone(lxb_dom_document_t *document, const lxb_dom_processing_instruction_t *pinstr)
lxb_dom_processing_instruction_t * lxb_dom_processing_instruction_interface_destroy(lxb_dom_processing_instruction_t *processing_instruction)
lexbor_mraw_t * mraw
Definition document.h:53
lxb_dom_node_t node
Definition element.h:33
uintptr_t ns
Definition node.h:48
lxb_dom_document_t * owner_document
Definition node.h:50
lxb_dom_node_type_t type
Definition node.h:59
uintptr_t local_name
Definition node.h:46
uintptr_t lxb_tag_id_t
Definition const.h:21