Changeset 742
- Timestamp:
- 02/20/04 16:12:07 (5 years ago)
- Files:
-
- trunk/RBFoundation/RBFoundation/XMLNode.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBFoundation/RBFoundation/XMLNode.py
r740 r742 57 57 def __ne__(self, other): 58 58 return not self.__eq__(other) 59 60 truelambda = lambda each: True 61 falselambda = lambda each: False 62 63 def makenodematcher(*args, **kw): 64 if args or kw: 65 return makenodematcherex(*args, **kw) 66 else: return truelambda 67 68 def makenodematcherex(node=_any, namespace=_any, prefix=_any): 69 def nodematcher(each): 70 if isinstance(each, basestring): return node==each 71 else: return node==each.node and namespace==each.namespace and prefix==each.prefix 72 return nodematcher 59 73 60 74 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 333 347 idxonly = kw.get('idxonly', None) 334 348 if idxonly is not None: del kw['idxonly'] 335 if args or kw: 336 def makematch(node=_any, namespace=_any, prefix=_any): 337 return lambda each: node==each.node and namespace==each.namespace and prefix==each.prefix 338 match = makematch(*args, **kw) 339 else: match = lambda each: True 349 match = makenodematcher(*args, **kw) 340 350 idx = 0 341 351 for each in self.elems: … … 349 359 """Returns a generator to iterate through the matching child nodes of xmlnode. 350 360 obj.iternodes(node=_any, namespace=_any, prefix=_any)""" 351 if args or kw: 352 def makematch(node=_any, namespace=_any, prefix=_any): 353 return lambda each: node==each.node and namespace==each.namespace and prefix==each.prefix 354 match = makematch(*args, **kw) 355 else: match = lambda each: True 361 match = makenodematcher(*args, **kw) 356 362 for each in self.elems: 357 363 if not isinstance(each, basestring): … … 412 418 self.deldata(key, **kw) 413 419 414 def haselem(self, elem , *args, **kw):420 def haselem(self, elem=None, *args, **kw): 415 421 """Returns True if elem is a child element of the xmlnode""" 416 422 try: … … 418 424 return self.hasnode(*elem, **kw) 419 425 elif isinstance(elem, _NoneType): 420 return False 426 try: 427 self.iterelems(elem).next() 428 return True 429 except StopIteration: 430 return False 421 431 else: 422 432 return self.hasdata(*elem, **kw)
