使用Python的xml.dom.minidom

时间:2009-10-08 16:39:20

标签: python xml

我正在尝试使用Python的xml.dom.minidom,我收到以下错误:

>>> from xml.dom import minidom
>>> xdocument = minidom.Document()
>>> xrss = minidom.Element("rss")
>>> xdocument.appendChild(xrss)
<DOM Element: rss at 0xc1d0f8>
>>> xchannel = minidom.Element("channel")
>>> xrss.appendChild(xchannel)
Traceback (most recent call last):
  File "C:\Program Files\Wing IDE 3.2\src\debug\tserver\_sandbox.py", line 1, in ?
    # Used internally for debug sandbox under external interpreter
  File "c:\Python24\Lib\xml\dom\minidom.py", line 123, in appendChild
    _clear_id_cache(self)
  File "c:\Python24\Lib\xml\dom\minidom.py", line 1468, in _clear_id_cache
    node.ownerDocument._id_cache.clear()
AttributeError: 'NoneType' object has no attribute '_id_cache'
>>> 

任何人都知道为什么?

2 个答案:

答案 0 :(得分:3)

使用xdocument.createElement('name')创建新元素。这是在DOM中执行此操作的标准方法。

答案 1 :(得分:0)

xdocument.appendChild(xrss)替换为xrss = xdocument.appendChild(xrss)。来自docs

  

Node.appendChild(newChild)添加一个新的   子节点到此节点的末尾   孩子的名单,回来了   newChild对象。如果节点已经在   在树中,它首先被删除。

因此,您需要将xrss分配给appendChild返回的元素。