Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 33d2b84

Browse files
committed
CharacterData methods: Update self.length on changes instead of extended
the __getattr__() handler. Text.splitText(): Update the length and nodeValue attributes.
1 parent 87432f4 commit 33d2b84

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

Lib/xml/dom/minidom.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

681682
class 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

Comments
 (0)