from xml.dom import minidom
from StringIO import StringIO
from abstractdomwrapper import AbstractDomWrapper
class DomWrapper(AbstractDomWrapper):
"""A wrapper for Python's XML DOM for simplifying reading data from it.
See documentation of AbstractDomWrapper for further usage information.
"""
def __init__(self, path=None, string=None, node=None):
"""Initialize by giving 'path' to an xml file or xml as a 'string'.
Alternative initialization by giving dom 'node' ment to be used only
internally. 'path' may actually also be an already opened file object
(or anything accepted by minidom.parse).
"""
AbstractDomWrapper.__init__(self, path)
if node is None:
node = self._get_root(path, string)
self.name = node.tagName
self.attrs = dict(node.attributes.items())
text = []
for child in node.childNodes:
if child.nodeType == child.ELEMENT_NODE:
self.children.append(DomWrapper(path, node=child))
elif child.nodeType == child.TEXT_NODE:
text.append(child.data)
elif child.nodeType != child.COMMENT_NODE:
raise TypeError("Unsupported node type: %s" % child.nodeType)
self.text = ''.join(text)
def _get_dom(self, path, string):
if path is not None:
source = path
else:
source = StringIO(string)
return minidom.parse(source)
文件路径:C:\Python26\lib\site-packages\robot\minidomwrapper.py
功能:定义了DomWrapper的基类,XML DOM 定义了访问和处理 XML 文档的标准方法。这里仅仅是mini的读,暂不深入
。暂不深入
阅读(25173) | 评论(0) | 转发(0) |