static bool save_complete_handle_attrs(save_complete_ctx *ctx,
		dom_string *node_name, dom_namednodemap *attrs)
{
	uint32_t length, i;
	dom_exception error;

	error = dom_namednodemap_get_length(attrs, &length);
	if (error != DOM_NO_ERR)
		return false;

	for (i = 0; i < length; i++) {
		dom_attr *attr;

		error = dom_namednodemap_item(attrs, i, (void *) &attr);
		if (error != DOM_NO_ERR)
			return false;

		if (attr == NULL)
			continue;

		if (save_complete_handle_attr(ctx, node_name, attr) == false) {
			dom_node_unref(attr);
			return false;
		}

		dom_node_unref(attr);
	}

	return true;
}
Example #2
0
bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, dom_node **ret)
{
	dom_exception err;
	unsigned long len;

	err = dom_namednodemap_get_length(map, &len);
	if (err != DOM_NO_ERR)
		return false;

	if (*iterator >= len)
		return false;

	err = dom_namednodemap_item(map, (*iterator), ret);
	if (err != DOM_NO_ERR)
		return false;
	
	(*iterator)++;	

	return true;
}