void xml_node_reparent(xml_node_t *parent, xml_node_t *child) { if (child->parent) xml_node_detach(child); xml_node_add_child(parent, child); }
ni_bool_t ni_iaid_map_del_iaid(ni_iaid_map_t *map, unsigned int iaid) { xml_node_t *root, *node = NULL; unsigned int curr; if (!(root = ni_iaid_map_root_node(map))) return FALSE; while ((node = ni_iaid_map_next_node(root, node))) { if (!ni_iaid_map_node_to_iaid(node, &curr) || iaid != curr) continue; xml_node_detach(node); xml_node_free(node); return TRUE; } return FALSE; }
ni_bool_t ni_iaid_map_del_name(ni_iaid_map_t *map, const char *name) { xml_node_t *root, *node = NULL; const char *attr; if (ni_string_empty(name)) return FALSE; if (!(root = ni_iaid_map_root_node(map))) return FALSE; while ((node = ni_iaid_map_next_node(root, node))) { attr = xml_node_get_attr(node, NI_CONFIG_DEFAULT_IAID_DEVICE); if (!ni_string_eq(name, attr)) continue; xml_node_detach(node); xml_node_free(node); return TRUE; } return FALSE; }