Parse the array data using the provided iterator of XML elements.

def _parse(
            self,
            item_iter,  # type: Iterable[ET.Element]
            state  # type: _ProcessorState
    ):
        # type: (...) -> List
        """Parse the array data using the provided iterator of XML elements."""
        parsed_array = []

        for i, item in enumerate(item_iter):
            state.push_location(self._item_processor.element_path, i)
            parsed_array.append(self._item_processor.parse_at_element(item, state))
            state.pop_location()

        if not parsed_array and self.required:
            state.raise_error(MissingValue, 'Missing required array "{}"'.format(self.alias))

        return parsed_array