[Python-checkins] CVS: python/dist/src/Lib/xml/dom minidom.py,1.29,1.30
Fred L. Drake
fdrake@users.sourceforge.net
Wed, 04 Apr 2001 07:09:49 -0700
Update of /cvsroot/python/python/dist/src/Lib/xml/dom
In directory usw-pr-cvs1:/tmp/cvs-serv8483/xml/dom
Modified Files:
minidom.py
Log Message:
Add support for the CharacterData methods, CDATASection.
Index: minidom.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/xml/dom/minidom.py,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -r1.29 -r1.30
*** minidom.py 2001/03/31 16:30:40 1.29
--- minidom.py 2001/04/04 14:09:46 1.30
***************
*** 614,623 ****
writer.write("%s<?%s %s?>%s" % (indent,self.target, self.data, newl))
! class Text(Node):
! nodeType = Node.TEXT_NODE
! nodeName = "#text"
! attributes = None
! childNodeTypes = ()
!
def __init__(self, data):
if type(data) not in _StringTypes:
--- 614,618 ----
writer.write("%s<?%s %s?>%s" % (indent,self.target, self.data, newl))
! class CharacterData(Node):
def __init__(self, data):
if type(data) not in _StringTypes:
***************
*** 626,629 ****
--- 621,628 ----
self.data = self.nodeValue = data
+ def __getattr__(self, name):
+ if name == "length":
+ return len(self.data)
+
def __repr__(self):
if len(self.data) > 10:
***************
*** 631,635 ****
else:
dotdotdot = ""
! return "<DOM Text node \"%s%s\">" % (self.data[0:10], dotdotdot)
def splitText(self, offset):
--- 630,687 ----
else:
dotdotdot = ""
! return "<DOM %s node \"%s%s\">" % (
! self.__class__.__name__, self.data[0:10], dotdotdot)
!
! def substringData(self, offset, count):
! if offset < 0:
! raise xml.dom.IndexSizeErr("offset cannot be negative")
! if offset >= len(self.data):
! raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
! if count < 0:
! raise xml.dom.IndexSizeErr("count cannot be negative")
! return self.data[offset:offset+count]
!
! def appendData(self, arg):
! self.data = self.data + arg
! self.nodeValue = self.data
!
! def insertData(self, offset, arg):
! if offset < 0:
! raise xml.dom.IndexSizeErr("offset cannot be negative")
! if offset >= len(self.data):
! raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
! if arg:
! self.data = "%s%s%s" % (
! self.data[:offset], arg, self.data[offset:])
! self.nodeValue = self.data
!
! def deleteData(self, offset, count):
! if offset < 0:
! raise xml.dom.IndexSizeErr("offset cannot be negative")
! if offset >= len(self.data):
! raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
! if count < 0:
! raise xml.dom.IndexSizeErr("count cannot be negative")
! if count:
! self.data = self.data[:offset] + self.data[offset+count:]
! self.nodeValue = self.data
!
! def replaceData(self, offset, count, arg):
! if offset < 0:
! raise xml.dom.IndexSizeErr("offset cannot be negative")
! if offset >= len(self.data):
! raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
! if count < 0:
! raise xml.dom.IndexSizeErr("count cannot be negative")
! if count:
! self.data = "%s%s%s" % (
! self.data[:offset], arg, self.data[offset+count:])
! self.nodeValue = self.data
!
! class Text(CharacterData):
! nodeType = Node.TEXT_NODE
! nodeName = "#text"
! attributes = None
! childNodeTypes = ()
def splitText(self, offset):
***************
*** 649,652 ****
--- 701,713 ----
_write_data(writer, "%s%s%s"%(indent, self.data, newl))
+
+ class CDATASection(Text):
+ nodeType = Node.CDATA_SECTION_NODE
+ nodeName = "#cdata-section"
+
+ def writexml(self, writer, indent="", addindent="", newl=""):
+ _write_data(writer, "<![CDATA[%s]]>" % self.data)
+
+
def _nssplit(qualifiedName):
fields = _string.split(qualifiedName, ':', 1)
***************
*** 781,784 ****
--- 842,850 ----
t.ownerDocument = self
return t
+
+ def createCDATASection(self, data):
+ c = CDATASection(data)
+ c.ownerDocument = self
+ return c
def createComment(self, data):