Lines Matching refs:element

18 lxb_dom_element_upper_update(lxb_dom_element_t *element, size_t *len);
35 lxb_dom_element_t *element; in lxb_dom_element_interface_create() local
37 element = lexbor_mraw_calloc(document->mraw, in lxb_dom_element_interface_create()
39 if (element == NULL) { in lxb_dom_element_interface_create()
43 lxb_dom_node_t *node = lxb_dom_interface_node(element); in lxb_dom_element_interface_create()
48 return element; in lxb_dom_element_interface_create()
53 const lxb_dom_element_t *element) in lxb_dom_element_interface_clone() argument
62 if (lxb_dom_element_interface_copy(new, element) != LXB_STATUS_OK) { in lxb_dom_element_interface_clone()
70 lxb_dom_element_interface_destroy(lxb_dom_element_t *element) in lxb_dom_element_interface_destroy() argument
73 lxb_dom_attr_t *attr = element->first_attr; in lxb_dom_element_interface_destroy()
75 (void) lxb_dom_node_interface_destroy(lxb_dom_interface_node(element)); in lxb_dom_element_interface_destroy()
119 lxb_dom_element_qualified_name_set(lxb_dom_element_t *element, in lxb_dom_element_qualified_name_set() argument
141 tag_data = lxb_tag_append(element->node.owner_document->tags, in lxb_dom_element_qualified_name_set()
142 element->node.local_name, key, lname_len); in lxb_dom_element_qualified_name_set()
152 element->qualified_name = (lxb_tag_id_t) tag_data; in lxb_dom_element_qualified_name_set()
169 lxb_dom_element_t *element; in lxb_dom_element_create() local
195 element = lxb_dom_document_create_interface(document, tag_data->tag_id, in lxb_dom_element_create()
197 if (element == NULL) { in lxb_dom_element_create()
204 return lxb_dom_document_destroy_interface(element); in lxb_dom_element_create()
207 element->node.prefix = ns_prefix->prefix_id; in lxb_dom_element_create()
209 status = lxb_dom_element_qualified_name_set(element, prefix, prefix_len, in lxb_dom_element_create()
212 return lxb_dom_document_destroy_interface(element); in lxb_dom_element_create()
217 status = lxb_dom_element_is_set(element, is, is_len); in lxb_dom_element_create()
219 return lxb_dom_document_destroy_interface(element); in lxb_dom_element_create()
223 element->node.local_name = tag_data->tag_id; in lxb_dom_element_create()
224 element->node.ns = ns_data->ns_id; in lxb_dom_element_create()
227 element->custom_state = LXB_DOM_ELEMENT_CUSTOM_STATE_UNDEFINED; in lxb_dom_element_create()
230 element->custom_state = LXB_DOM_ELEMENT_CUSTOM_STATE_UNCUSTOMIZED; in lxb_dom_element_create()
233 return element; in lxb_dom_element_create()
237 lxb_dom_element_destroy(lxb_dom_element_t *element) in lxb_dom_element_destroy() argument
239 return lxb_dom_document_destroy_interface(element); in lxb_dom_element_destroy()
243 lxb_dom_element_has_attributes(lxb_dom_element_t *element) in lxb_dom_element_has_attributes() argument
245 return element->first_attr != NULL; in lxb_dom_element_has_attributes()
249 lxb_dom_element_set_attribute(lxb_dom_element_t *element, in lxb_dom_element_set_attribute() argument
256 attr = lxb_dom_element_attr_is_exist(element, qualified_name, qn_len); in lxb_dom_element_set_attribute()
267 attr = lxb_dom_attr_interface_create(element->node.owner_document); in lxb_dom_element_set_attribute()
272 attr->node.ns = element->node.ns; in lxb_dom_element_set_attribute()
274 if (element->node.ns == LXB_NS_HTML in lxb_dom_element_set_attribute()
275 && element->node.owner_document->type == LXB_DOM_DOCUMENT_DTYPE_HTML) in lxb_dom_element_set_attribute()
292 lxb_dom_element_attr_append(element, attr); in lxb_dom_element_set_attribute()
298 lxb_dom_element_get_attribute(lxb_dom_element_t *element, in lxb_dom_element_get_attribute() argument
304 attr = lxb_dom_element_attr_by_name(element, qualified_name, qn_len); in lxb_dom_element_get_attribute()
317 lxb_dom_element_remove_attribute(lxb_dom_element_t *element, in lxb_dom_element_remove_attribute() argument
323 attr = lxb_dom_element_attr_by_name(element, qualified_name, qn_len); in lxb_dom_element_remove_attribute()
328 status = lxb_dom_element_attr_remove(element, attr); in lxb_dom_element_remove_attribute()
339 lxb_dom_element_has_attribute(lxb_dom_element_t *element, in lxb_dom_element_has_attribute() argument
342 return lxb_dom_element_attr_by_name(element, qualified_name, qn_len) != NULL; in lxb_dom_element_has_attribute()
346 lxb_dom_element_attr_append(lxb_dom_element_t *element, lxb_dom_attr_t *attr) in lxb_dom_element_attr_append() argument
349 lxb_dom_document_t *doc = lxb_dom_interface_node(element)->owner_document; in lxb_dom_element_attr_append()
352 exist = element->attr_id; in lxb_dom_element_attr_append()
355 lxb_dom_element_attr_remove(element, exist); in lxb_dom_element_attr_append()
359 element->attr_id = attr; in lxb_dom_element_attr_append()
362 exist = element->attr_class; in lxb_dom_element_attr_append()
365 lxb_dom_element_attr_remove(element, exist); in lxb_dom_element_attr_append()
369 element->attr_class = attr; in lxb_dom_element_attr_append()
372 if (element->first_attr == NULL) { in lxb_dom_element_attr_append()
373 element->first_attr = attr; in lxb_dom_element_attr_append()
374 element->last_attr = attr; in lxb_dom_element_attr_append()
379 attr->prev = element->last_attr; in lxb_dom_element_attr_append()
381 element->last_attr->next = attr; in lxb_dom_element_attr_append()
382 element->last_attr = attr; in lxb_dom_element_attr_append()
386 attr->owner = element; in lxb_dom_element_attr_append()
396 lxb_dom_element_attr_remove(lxb_dom_element_t *element, lxb_dom_attr_t *attr) in lxb_dom_element_attr_remove() argument
398 (void) element; in lxb_dom_element_attr_remove()
406 lxb_dom_element_attr_by_name(lxb_dom_element_t *element, in lxb_dom_element_attr_by_name() argument
410 lexbor_hash_t *attrs = element->node.owner_document->attrs; in lxb_dom_element_attr_by_name()
411 lxb_dom_attr_t *attr = element->first_attr; in lxb_dom_element_attr_by_name()
413 if (element->node.ns == LXB_NS_HTML in lxb_dom_element_attr_by_name()
414 && element->node.owner_document->type == LXB_DOM_DOCUMENT_DTYPE_HTML) in lxb_dom_element_attr_by_name()
441 lxb_dom_element_attr_by_local_name_data(lxb_dom_element_t *element, in lxb_dom_element_attr_by_local_name_data() argument
444 lxb_dom_attr_t *attr = element->first_attr; in lxb_dom_element_attr_by_local_name_data()
458 lxb_dom_element_attr_by_id(lxb_dom_element_t *element, in lxb_dom_element_attr_by_id() argument
461 lxb_dom_attr_t *attr = element->first_attr; in lxb_dom_element_attr_by_id()
522 lxb_dom_element_attr_is_exist(lxb_dom_element_t *element, in lxb_dom_element_attr_is_exist() argument
526 lxb_dom_attr_t *attr = element->first_attr; in lxb_dom_element_attr_is_exist()
528 data = lxb_dom_attr_data_by_local_name(element->node.owner_document->attrs, in lxb_dom_element_attr_is_exist()
548 lxb_dom_element_is_set(lxb_dom_element_t *element, in lxb_dom_element_is_set() argument
551 if (element->is_value == NULL) { in lxb_dom_element_is_set()
552 element->is_value = lexbor_mraw_calloc(element->node.owner_document->mraw, in lxb_dom_element_is_set()
554 if (element->is_value == NULL) { in lxb_dom_element_is_set()
559 if (element->is_value->data == NULL) { in lxb_dom_element_is_set()
560 lexbor_str_init(element->is_value, in lxb_dom_element_is_set()
561 element->node.owner_document->text, is_len); in lxb_dom_element_is_set()
563 if (element->is_value->data == NULL) { in lxb_dom_element_is_set()
568 if (element->is_value->length != 0) { in lxb_dom_element_is_set()
569 element->is_value->length = 0; in lxb_dom_element_is_set()
572 lxb_char_t *data = lexbor_str_append(element->is_value, in lxb_dom_element_is_set()
573 element->node.owner_document->text, in lxb_dom_element_is_set()
649 lxb_dom_element_qualified_name(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_qualified_name() argument
653 if (element->qualified_name != 0) { in lxb_dom_element_qualified_name()
654 data = lxb_tag_data_by_id(element->node.owner_document->tags, in lxb_dom_element_qualified_name()
655 element->qualified_name); in lxb_dom_element_qualified_name()
658 data = lxb_tag_data_by_id(element->node.owner_document->tags, in lxb_dom_element_qualified_name()
659 element->node.local_name); in lxb_dom_element_qualified_name()
670 lxb_dom_element_qualified_name_upper(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_qualified_name_upper() argument
674 if (element->upper_name == LXB_TAG__UNDEF) { in lxb_dom_element_qualified_name_upper()
675 return lxb_dom_element_upper_update(element, len); in lxb_dom_element_qualified_name_upper()
678 data = (lxb_tag_data_t *) element->upper_name; in lxb_dom_element_qualified_name_upper()
688 lxb_dom_element_upper_update(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_upper_update() argument
694 if (element->upper_name != LXB_TAG__UNDEF) { in lxb_dom_element_upper_update()
699 name = lxb_dom_element_qualified_name(element, &length); in lxb_dom_element_upper_update()
704 data = lexbor_hash_insert(element->node.owner_document->tags, in lxb_dom_element_upper_update()
710 data->tag_id = element->node.local_name; in lxb_dom_element_upper_update()
716 element->upper_name = (lxb_tag_id_t) data; in lxb_dom_element_upper_update()
722 lxb_dom_element_local_name(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_local_name() argument
726 data = lxb_tag_data_by_id(element->node.owner_document->tags, in lxb_dom_element_local_name()
727 element->node.local_name); in lxb_dom_element_local_name()
744 lxb_dom_element_prefix(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_prefix() argument
748 if (element->node.prefix == LXB_NS__UNDEF) { in lxb_dom_element_prefix()
752 data = lxb_ns_prefix_data_by_id(element->node.owner_document->tags, in lxb_dom_element_prefix()
753 element->node.prefix); in lxb_dom_element_prefix()
770 lxb_dom_element_tag_name(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_tag_name() argument
772 lxb_dom_document_t *doc = lxb_dom_interface_node(element)->owner_document; in lxb_dom_element_tag_name()
774 if (element->node.ns != LXB_NS_HTML in lxb_dom_element_tag_name()
777 return lxb_dom_element_qualified_name(element, len); in lxb_dom_element_tag_name()
780 return lxb_dom_element_qualified_name_upper(element, len); in lxb_dom_element_tag_name()
789 lxb_dom_element_id_noi(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_id_noi() argument
791 return lxb_dom_element_id(element, len); in lxb_dom_element_id_noi()
795 lxb_dom_element_class_noi(lxb_dom_element_t *element, size_t *len) in lxb_dom_element_class_noi() argument
797 return lxb_dom_element_class(element, len); in lxb_dom_element_class_noi()
801 lxb_dom_element_is_custom_noi(lxb_dom_element_t *element) in lxb_dom_element_is_custom_noi() argument
803 return lxb_dom_element_is_custom(element); in lxb_dom_element_is_custom_noi()
807 lxb_dom_element_custom_is_defined_noi(lxb_dom_element_t *element) in lxb_dom_element_custom_is_defined_noi() argument
809 return lxb_dom_element_custom_is_defined(element); in lxb_dom_element_custom_is_defined_noi()
813 lxb_dom_element_first_attribute_noi(lxb_dom_element_t *element) in lxb_dom_element_first_attribute_noi() argument
815 return lxb_dom_element_first_attribute(element); in lxb_dom_element_first_attribute_noi()
831 lxb_dom_element_last_attribute_noi(lxb_dom_element_t *element) in lxb_dom_element_last_attribute_noi() argument
833 return lxb_dom_element_last_attribute(element); in lxb_dom_element_last_attribute_noi()
837 lxb_dom_element_id_attribute_noi(lxb_dom_element_t *element) in lxb_dom_element_id_attribute_noi() argument
839 return lxb_dom_element_id_attribute(element); in lxb_dom_element_id_attribute_noi()
843 lxb_dom_element_class_attribute_noi(lxb_dom_element_t *element) in lxb_dom_element_class_attribute_noi() argument
845 return lxb_dom_element_class_attribute(element); in lxb_dom_element_class_attribute_noi()