diff --git a/napalm_yang/parsers/xml.py b/napalm_yang/parsers/xml.py index 231698b2..adf80d6c 100644 --- a/napalm_yang/parsers/xml.py +++ b/napalm_yang/parsers/xml.py @@ -105,6 +105,7 @@ def _parse_list_container_helper(cls, mapping, iterators, root, list_vars=None): composite_key = mapping.get("composite_key", None) forced_key = mapping.get("key", None) key_attribute = mapping.get("key_attribute", None) + post_process_filter = mapping.pop("post_process_filter", None) if composite_key: key = " ".join([extra_vars[k] for k in composite_key]) @@ -115,6 +116,9 @@ def _parse_list_container_helper(cls, mapping, iterators, root, list_vars=None): else: key = element.tag + if post_process_filter: + key = cls._parse_post_process_filter(post_process_filter, key, extra_vars) + yield key, etree.tostring(element), extra_vars @classmethod