# child element iterator
[AXIOM]

## Defines
#define | AXIOM_CHILD_ELEMENT_ITERATOR_FREE(iterator, env) axiom_child_element_iterator_free(iterator, env)
#define | AXIOM_CHILD_ELEMENT_ITERATOR_REMOVE(iterator, env) axiom_child_element_iterator_remove(iterator, env)
#define | AXIOM_CHILD_ELEMENT_ITERATOR_HAS_NEXT(iterator, env) axiom_child_element_iterator_has_next(iterator, env)
#define | AXIOM_CHILD_ELEMENT_ITERATOR_NEXT(iterator, env) axiom_child_element_iterator_next(iterator, env)
## Functions
AXIS2_EXTERN void | axiom_child_element_iterator_free (void *iterator, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_child_element_iterator_remove (axiom_child_element_iterator_t *iterator, const axutil_env_t *env)
AXIS2_EXTERN axis2_bool_t | axiom_child_element_iterator_has_next (axiom_child_element_iterator_t *iterator, const axutil_env_t *env)
AXIS2_EXTERN axiom_node_t * | axiom_child_element_iterator_next (axiom_child_element_iterator_t *iterator, const axutil_env_t *env)
AXIS2_EXTERN axiom_child_element_iterator_t * | axiom_child_element_iterator_create (const axutil_env_t *env, axiom_node_t *current_child)

## Function Documentation

AXIS2_EXTERN axiom_child_element_iterator_t* axiom_child_element_iterator_create | ( | const axutil_env_t * | env,
|  | axiom_node_t * | current_child |
| ) |  |  |

Create a child element interator for the current child

Parameters:

  | current | child
  | env | environment, MUST NOT be NULL. return axiom_child_element_iterator_t

AXIS2_EXTERN void axiom_child_element_iterator_free | ( | void * | iterator,
|  | const axutil_env_t * | env |
| ) |  |  |

Free the iterator

Parameters:

  | iterator | a pointer to child element iterator struct
  | env | environment, MUST NOT be NULL.

AXIS2_EXTERN axis2_bool_t axiom_child_element_iterator_has_next | ( | axiom_child_element_iterator_t * | iterator,
|  | const axutil_env_t * | env |
| ) |  |  |

returns true if the iteration has more elements in otherwords it returns true if the next() would return an element rather than null with an error code set to environments error

Parameters:

  | iterator | a pointer to child element iterator struct
  | env | environment, MUST NOT be NULL.

AXIS2_EXTERN axiom_node_t* axiom_child_element_iterator_next | ( | axiom_child_element_iterator_t * | iterator,
|  | const axutil_env_t * | env |
| ) |  |  |

Returns the next element in the iteration. Returns null if there is no more elements

Parameters:

  | iterator | a pointer to child element iterator struct
  | env | environment, MUST NOT be NULL.

AXIS2_EXTERN axis2_status_t axiom_child_element_iterator_remove | ( | axiom_child_element_iterator_t * | iterator,
|  | const axutil_env_t * | env |
| ) |  |  |

Removes from the underlying collection the last element returned by the iterator (optional op). This method can be called only once per call to `next`. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method.

Parameters:

  | iterator | a pointer to child element iterator struct
  | env | environment, MUST NOT be NULL.