Получить документ из объектов Node или Element с помощью minidom

Есть ли способ получить корневой документ от дочернего элемента или узла? Я перехожу из библиотеки, которая работает с любым из документов, элементов или узлов, в библиотеку, которая работает только с документом. например.

От:

element.xpath('/a/b/c') # 4Suite

чтобы:

xpath.find('/a/b/c', doc) # pydomxpath

1 ответ

Решение

Node объекты имеют ownerDocument свойство, которое относится к Document объект, связанный с узлом. См. http://www.w3.org/TR/DOM-Level-2-Core/core.html.

Это свойство не упоминается в документации по Python, но оно доступно. Пример:

from xml.dom import minidom

XML = """
<root>
   <x>abc</x>
   <y>123</y>
</root>"""

dom = minidom.parseString(XML)
x = dom.getElementsByTagName('x')[0]

print x
print x.ownerDocument

Выход:

<DOM Element: x at 0xc57cd8>
<xml.dom.minidom.Document instance at 0x00C1CC60>
Другие вопросы по тегам