@@ -619,10 +619,7 @@ def __init__(self, data):
619619 raise TypeError , "node contents must be a string"
620620 Node .__init__ (self )
621621 self .data = self .nodeValue = data
622-
623- def __getattr__ (self , name ):
624- if name == "length" :
625- return len (self .data )
622+ self .length = len (data )
626623
627624 def __repr__ (self ):
628625 if len (self .data ) > 10 :
@@ -644,6 +641,7 @@ def substringData(self, offset, count):
644641 def appendData (self , arg ):
645642 self .data = self .data + arg
646643 self .nodeValue = self .data
644+ self .length = len (self .data )
647645
648646 def insertData (self , offset , arg ):
649647 if offset < 0 :
@@ -654,6 +652,7 @@ def insertData(self, offset, arg):
654652 self .data = "%s%s%s" % (
655653 self .data [:offset ], arg , self .data [offset :])
656654 self .nodeValue = self .data
655+ self .length = len (self .data )
657656
658657 def deleteData (self , offset , count ):
659658 if offset < 0 :
@@ -665,6 +664,7 @@ def deleteData(self, offset, count):
665664 if count :
666665 self .data = self .data [:offset ] + self .data [offset + count :]
667666 self .nodeValue = self .data
667+ self .length = len (self .data )
668668
669669 def replaceData (self , offset , count , arg ):
670670 if offset < 0 :
@@ -677,6 +677,7 @@ def replaceData(self, offset, count, arg):
677677 self .data = "%s%s%s" % (
678678 self .data [:offset ], arg , self .data [offset + count :])
679679 self .nodeValue = self .data
680+ self .length = len (self .data )
680681
681682class Text (CharacterData ):
682683 nodeType = Node .TEXT_NODE
@@ -695,6 +696,8 @@ def splitText(self, offset):
695696 else :
696697 self .parentNode .insertBefore (newText , next )
697698 self .data = self .data [:offset ]
699+ self .nodeValue = self .data
700+ self .length = len (self .data )
698701 return newText
699702
700703 def writexml (self , writer , indent = "" , addindent = "" , newl = "" ):
0 commit comments