From 1e68827c8fa95d10df3c805e5dd8383b19048b18 Mon Sep 17 00:00:00 2001 From: Paul Prescod Date: Sat, 1 Jul 2000 19:21:47 +0000 Subject: [PATCH] Misc fixes and improvements. --- Lib/xml/dom/minidom.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index 0283fee0eb5..337ff0375b4 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -40,7 +40,8 @@ class Node: index=repr( id( self ))+repr( self.__class__ ) Node.allnodes[index]=repr( self.__dict__ ) if Node.debug==None: - Node.debug=open( "debug4.out", "w" ) + Node.debug=StringIO() + #open( "debug4.out", "w" ) Node.debug.write( "create %s\n"%index ) def __getattr__( self, key ): @@ -216,13 +217,24 @@ dictionary""" #FIXME: is it appropriate to return .value? def __getitem__( self, attname_or_tuple ): - if type( attname_or_tuple ) == type( () ): + if type( attname_or_tuple ) == types.TupleType: return self._attrsNS[attname_or_tuple] else: return self._attrs[attname_or_tuple] - def __setitem__( self, attname ): - raise TypeError, "object does not support item assignment" + # same as set + def __setitem__( self, attname, value ): + if type( value ) == types.StringType: + node=Attr( attname ) + node.value=value + else: + assert isinstance( value, Attr ) or type( value )==types.StringType + node=value + old=self._attrs.get( attname, None) + if old: + old.unlink() + self._attrs[node.name]=node + self._attrsNS[(node.namespaceURI,node.localName)]=node def __delitem__( self, attname_or_tuple ): node=self[attname_or_tuple]