Using Python xml.dom.minidom

I try to use Python xml.dom.minidom and I get the following error:

>>> 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'
>>> 

Does anyone know why?

+3
source share
2 answers

Use xdocument.createElement('name')to create new elements. This is the standard way to do this in the DOM.

+3
source

Replace xdocument.appendChild(xrss)with xrss = xdocument.appendChild(xrss). From docs :

Node.appendChild (newChild) Add a new child node to this node at the end of the list of children returning newChild. If the node has already been in the tree, it is first deleted.

Therefore, you need to assign the xrssreturned item from appendChild.

0
source

Source: https://habr.com/ru/post/1719639/


All Articles