Использование Python xml.dom.minidom - PullRequest
3 голосов
/ 08 октября 2009

Я пытаюсь использовать 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 ]

3 голосов
/ 08 октября 2009

Используйте xdocument.createElement('name') для создания новых элементов. Это стандартный способ сделать это в DOM.

0 голосов
/ 08 октября 2009

Заменить xdocument.appendChild(xrss) на xrss = xdocument.appendChild(xrss). Из документов :

Node.appendChild (newChild) Добавить новый дочерний узел к этому узлу в конце список детей, возвращающихся newChild. Если узел уже был в в дереве он удаляется первым.

Таким образом, вам нужно присвоить xrss возвращаемому элементу из appendChild.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...