55 new->node.ns =
attr->node.ns;
57 if (document ==
attr->node.owner_document) {
58 new->qualified_name =
attr->qualified_name;
62 attr->qualified_name);
68 new->qualified_name =
attr->qualified_name;
93 if (new->value ==
NULL) {
131 size_t length,
bool to_lowercase)
141 attr->node.local_name =
data->attr_id;
143 if (to_lowercase ==
false) {
158 size_t name_length,
bool to_lowercase)
184 (name_length - (length + 1)));
202 if (
attr->node.prefix == 0) {
238 attr->value->length = 0;
252 attr->value->data[value_len] = 0x00;
253 attr->value->length = value_len;
272 attr->value->length = value_len;
298 && first->node.ns == second->
node.
ns
301 if (first->value ==
NULL) {
312 first->value->length))
421 return &lxb_dom_attr_res_data_default[attr_id];
467 if (
attr->qualified_name != 0) {
469 attr->qualified_name);
473 attr->node.local_name);
lxb_inline const lxb_char_t * lxb_dom_attr_value(lxb_dom_attr_t *attr, size_t *len)
lxb_inline const lxb_char_t * lxb_dom_attr_local_name(lxb_dom_attr_t *attr, size_t *len)
uintptr_t lxb_dom_attr_id_t
@ LXB_DOM_ATTR__LAST_ENTRY
link(string $target, string $link)
@ LXB_STATUS_ERROR_MEMORY_ALLOCATION
struct lxb_dom_document lxb_dom_document_t
#define lxb_dom_interface_node(obj)
struct lxb_dom_node lxb_dom_node_t
struct lxb_dom_attr lxb_dom_attr_t
struct lxb_dom_element lxb_dom_element_t
lxb_inline lxb_dom_document_t * lxb_dom_document_owner(lxb_dom_document_t *document)
@ LXB_DOM_NODE_TYPE_ATTRIBUTE
LXB_API const lexbor_hash_search_t * lexbor_hash_search_lower
LXB_API const lexbor_hash_search_t * lexbor_hash_search_raw
LXB_API const lexbor_hash_insert_t * lexbor_hash_insert_lower
void * lexbor_hash_insert(lexbor_hash_t *hash, const lexbor_hash_insert_t *insert, const lxb_char_t *key, size_t length)
LXB_API const lexbor_hash_insert_t * lexbor_hash_insert_raw
void * lexbor_hash_search(lexbor_hash_t *hash, const lexbor_hash_search_t *search, const lxb_char_t *key, size_t length)
lxb_inline lxb_char_t * lexbor_hash_entry_str(const lexbor_hash_entry_t *entry)
struct lexbor_hash lexbor_hash_t
hash(string $algo, string $data, bool $binary=false, array $options=[])
const lxb_char_t * lxb_dom_attr_local_name_noi(lxb_dom_attr_t *attr, size_t *len)
const lxb_dom_attr_data_t * lxb_dom_attr_data_by_qualified_name(lexbor_hash_t *hash, const lxb_char_t *name, size_t length)
const lxb_char_t * lxb_dom_attr_value_noi(lxb_dom_attr_t *attr, size_t *len)
void lxb_dom_attr_remove(lxb_dom_attr_t *attr)
lxb_status_t lxb_dom_attr_set_name(lxb_dom_attr_t *attr, const lxb_char_t *name, size_t length, bool to_lowercase)
lxb_dom_attr_t * lxb_dom_attr_interface_create(lxb_dom_document_t *document)
LXB_API lxb_dom_attr_data_t * lxb_dom_attr_qualified_name_append(lexbor_hash_t *hash, const lxb_char_t *name, size_t length)
lxb_status_t lxb_dom_attr_set_value_wo_copy(lxb_dom_attr_t *attr, lxb_char_t *value, size_t value_len)
const lxb_dom_attr_data_t * lxb_dom_attr_data_undef(void)
LXB_API lxb_dom_attr_data_t * lxb_dom_attr_local_name_append(lexbor_hash_t *hash, const lxb_char_t *name, size_t length)
const lxb_char_t * lxb_dom_attr_qualified_name(lxb_dom_attr_t *attr, size_t *len)
lxb_dom_attr_t * lxb_dom_attr_interface_clone(lxb_dom_document_t *document, const lxb_dom_attr_t *attr)
bool lxb_dom_attr_compare(lxb_dom_attr_t *first, lxb_dom_attr_t *second)
const lxb_ns_data_t * lxb_ns_append(lexbor_hash_t *hash, const lxb_char_t *link, size_t length)
lxb_status_t lxb_dom_attr_set_name_ns(lxb_dom_attr_t *attr, const lxb_char_t *link, size_t link_length, const lxb_char_t *name, size_t name_length, bool to_lowercase)
lxb_status_t lxb_dom_attr_set_existing_value(lxb_dom_attr_t *attr, const lxb_char_t *value, size_t value_len)
const lxb_dom_attr_data_t * lxb_dom_attr_data_by_local_name(lexbor_hash_t *hash, const lxb_char_t *name, size_t length)
lxb_dom_attr_t * lxb_dom_attr_interface_destroy(lxb_dom_attr_t *attr)
lxb_status_t lxb_dom_attr_set_value(lxb_dom_attr_t *attr, const lxb_char_t *value, size_t value_len)
const lxb_dom_attr_data_t * lxb_dom_attr_data_by_id(lexbor_hash_t *hash, lxb_dom_attr_id_t attr_id)
lxb_status_t lxb_dom_attr_clone_name_value(lxb_dom_attr_t *attr_from, lxb_dom_attr_t *attr_to)
lxb_status_t lxb_dom_node_interface_copy(lxb_dom_node_t *dst, const lxb_dom_node_t *src, bool is_attr)
lxb_dom_node_t * lxb_dom_node_interface_destroy(lxb_dom_node_t *node)
void * lexbor_mraw_free(lexbor_mraw_t *mraw, void *data)
void * lexbor_mraw_calloc(lexbor_mraw_t *mraw, size_t size)
void * lexbor_mraw_alloc(lexbor_mraw_t *mraw, size_t size)
uintptr_t lxb_ns_prefix_id_t
const lxb_ns_prefix_data_t * lxb_ns_prefix_append(lexbor_hash_t *hash, const lxb_char_t *prefix, size_t length)
const lexbor_shs_entry_t * lexbor_shs_entry_get_static(const lexbor_shs_entry_t *root, const lxb_char_t *key, size_t key_len)
const lexbor_shs_entry_t * lexbor_shs_entry_get_lower_static(const lexbor_shs_entry_t *root, const lxb_char_t *key, size_t key_len)
lxb_char_t * lexbor_str_copy(lexbor_str_t *dest, const lexbor_str_t *target, lexbor_mraw_t *mraw)
lxb_char_t * lexbor_str_realloc(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t new_size)
lxb_char_t * lexbor_str_init(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t size)
bool lexbor_str_data_ncmp(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
lxb_inline size_t lexbor_str_size(lexbor_str_t *str)
lxb_dom_attr_id_t qualified_name
lxb_dom_event_remove_f ev_remove
lxb_dom_event_set_value_f ev_set_value
lxb_dom_attr_t * attr_class
lxb_dom_attr_t * last_attr
lxb_dom_attr_t * first_attr
lxb_dom_document_t * owner_document
unsigned int lxb_status_t
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)