from . import base from xml.etree import cElementTree ignore_ns = False class MatchXPath(base.MatcherBase): def match(self, xml): xml = xml.xml x = cElementTree.Element('x') x.append(xml) if not ignore_ns: if x.find(self._criteria) is not None: return True return False else: criteria = [c.split('}')[-1] for c in self._criteria.split('/')] xml = x for tag in criteria: children = [c.tag.split('}')[-1] for c in xml.getchildren()] try: idx = children.index(tag) except ValueError: return False xml = xml.getchildren()[idx] return True