[utils] Use compat_xpath
This commit is contained in:
		@@ -50,6 +50,7 @@ from .compat import (
 | 
			
		||||
    compat_urllib_parse_urlparse,
 | 
			
		||||
    compat_urllib_request,
 | 
			
		||||
    compat_urlparse,
 | 
			
		||||
    compat_xpath,
 | 
			
		||||
    shlex_quote,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -165,12 +166,7 @@ if sys.version_info >= (2, 7):
 | 
			
		||||
        return node.find(expr)
 | 
			
		||||
else:
 | 
			
		||||
    def find_xpath_attr(node, xpath, key, val=None):
 | 
			
		||||
        # Here comes the crazy part: In 2.6, if the xpath is a unicode,
 | 
			
		||||
        # .//node does not match if a node is a direct child of . !
 | 
			
		||||
        if isinstance(xpath, compat_str):
 | 
			
		||||
            xpath = xpath.encode('ascii')
 | 
			
		||||
 | 
			
		||||
        for f in node.findall(xpath):
 | 
			
		||||
        for f in node.findall(compat_xpath(xpath)):
 | 
			
		||||
            if key not in f.attrib:
 | 
			
		||||
                continue
 | 
			
		||||
            if val is None or f.attrib.get(key) == val:
 | 
			
		||||
@@ -195,9 +191,7 @@ def xpath_with_ns(path, ns_map):
 | 
			
		||||
 | 
			
		||||
def xpath_element(node, xpath, name=None, fatal=False, default=NO_DEFAULT):
 | 
			
		||||
    def _find_xpath(xpath):
 | 
			
		||||
        if sys.version_info < (2, 7):  # Crazy 2.6
 | 
			
		||||
            xpath = xpath.encode('ascii')
 | 
			
		||||
        return node.find(xpath)
 | 
			
		||||
        return node.find(compat_xpath(xpath))
 | 
			
		||||
 | 
			
		||||
    if isinstance(xpath, (str, compat_str)):
 | 
			
		||||
        n = _find_xpath(xpath)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user