Changeset 2808:ad14d35fa67f in livinglogic.python.xist

Show
Ignore:
Timestamp:
07/25/07 13:32:11 (12 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Simplify match implementation of various CSS xfind selectors.

Simplify xfind.CSSHasAttributeSelector.match(), xfind.CSSAttributeListSelector.match()
and xfind.CSSAttributeLangSelector.match().

Use CSS entity in css() docstring.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/ll/xist/xfind.py

    r2807 r2808  
    12691269 
    12701270    def match(self, path): 
    1271         node = path[-1] 
    1272         if not isinstance(node, xsc.Element) or not node.Attrs.isallowed_xml(self.attributename): 
    1273             return False 
    1274         return node.attrs.has_xml(self.attributename) 
     1271        if path: 
     1272            node = path[-1] 
     1273            if isinstance(node, xsc.Element) and node.Attrs.isallowed_xml(self.attributename): 
     1274                return node.attrs.has_xml(self.attributename) 
     1275        return False 
    12751276 
    12761277    def __repr__(self): 
     
    12871288 
    12881289    def match(self, path): 
    1289         node = path[-1] 
    1290         if not isinstance(node, xsc.Element) or not node.Attrs.isallowed_xml(self.attributename): 
    1291             return False 
    1292         attr = node.attrs.get_xml(self.attributename) 
    1293         return self.attributevalue in unicode(attr).split() 
     1290        if path: 
     1291            node = path[-1] 
     1292            if isinstance(node, xsc.Element) and node.Attrs.isallowed_xml(self.attributename): 
     1293                attr = node.attrs.get_xml(self.attributename) 
     1294                return self.attributevalue in unicode(attr).split() 
     1295        return False 
    12941296 
    12951297    def __repr__(self): 
     
    13061308 
    13071309    def match(self, path): 
    1308         node = path[-1] 
    1309         if not isinstance(node, xsc.Element) or not node.Attrs.isallowed_xml(self.attributename): 
    1310             return False 
    1311         attr = node.attrs.get_xml(self.attributename) 
    1312         parts = unicode(attr).split("-", 1) 
    1313         if not parts: 
    1314             return False 
    1315         return parts[0] == self.attributevalue 
     1310        if path: 
     1311            node = path[-1] 
     1312            if isinstance(node, xsc.Element) and node.Attrs.isallowed_xml(self.attributename): 
     1313                attr = node.attrs.get_xml(self.attributename) 
     1314                parts = unicode(attr).split("-", 1) 
     1315                if parts: 
     1316                    return parts[0] == self.attributevalue 
     1317        return False 
    13161318 
    13171319    def __repr__(self): 
     
    15561558    """ 
    15571559    Create a walk filter that will yield all nodes that match the specified 
    1558     CSS expression. <arg>selectors</arg> can be a string or a 
     1560    &css; expression. <arg>selectors</arg> can be a string or a 
    15591561    <class>cssutils.css.selector.Selector</class> object. <arg>prefixes</arg> 
    15601562    may is a mapping mapping namespace prefixes to namespace names.