[Python-checkins] CVS: python/dist/src/Lib/xml/dom minidom.py,1.29,1.30

Fred L. Drake fdrake@users.sourceforge.net
2001年4月04日 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):

AltStyle によって変換されたページ (->オリジナル) /