In this article the following simple YANG data model will be used for illustration:
module example { namespace "http://www.yumaworks.com/ns/example"; prefix example; revision "2019-01-01"; container cont1 { list list1 { key "name"; leaf name { type string; } } } }
Now, for example, when we have a val_value structure that represent container "cont1" and all its children, we can use the following loop to iterate through its children list:
{ /* this is the parent val_value that represents "cont1" container */ val_value_t *parentval; /* this is the first list in the Queue */ val_value_t *chval = val_get_first_child(parentval); if (!chval) { // there is no children } /* now we can iterate through all the list entries */ for (; chval != NULL; chval = val_get_next_child(chval)) { val_value_t *key_val = val_find_child(chval, (const xmlChar *)"example", // module name (const xmlChar *)"name"); // child leaf name to find if (!key_val) { /* there is no key; should not happen; list should always have keys */ } } }