@@ -54,6 +54,7 @@ def __init__(self, parsed_selector):
5454 self .local_name = None
5555 self .lower_local_name = None
5656 self .namespace = None
57+ self .requires_lang_attr = False
5758
5859 node = parsed_selector .parsed_tree
5960 if isinstance (node , parser .CombinedSelector ):
@@ -68,6 +69,9 @@ def __init__(self, parsed_selector):
6869 self .lower_local_name = simple_selector .lower_local_name
6970 elif isinstance (simple_selector , parser .NamespaceSelector ):
7071 self .namespace = simple_selector .namespace
72+ elif isinstance (simple_selector , parser .AttributeSelector ) and \
73+ simple_selector .name == "lang" :
74+ self .requires_lang_attr = True
7175
7276
7377def _compile_node (selector ):
@@ -169,7 +173,7 @@ def _compile_node(selector):
169173 % (selector .lower_name , selector .name ))
170174 value = selector .value
171175 if selector .operator is None :
172- return 'el.etree_element.get(%s) is not None ' % key
176+ return '%s in el.etree_element.attrib ' % key
173177 elif selector .operator == '=' :
174178 return 'el.etree_element.get(%s) == %r' % (key , value )
175179 elif selector .operator == '~=' :
0 commit comments