При использовании lxml можно ли отображать XML без атрибутов пространства имен? - PullRequest
7 голосов
/ 23 февраля 2011

Я сгенерировал некоторый XML с помощью lxml и получил узлы, сгенерированные следующим образом:

<QBXML xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
py:pytype="TREE">

и:

<MaxReturned py:pytype="int">

Эти пользовательские атрибуты убивают парсер Quickbooks.Могу ли я получить LXML для рендеринга без пользовательских вещей?

Ответы [ 2 ]

8 голосов
/ 23 февраля 2011

Похоже, позаботьтесь об этом:

objectify.deannotate(root, xsi_nil=True)
etree.cleanup_namespaces(root)

или, если используется lxml> = 2.3.2 (спасибо @Pedru):

objectify.deannotate(root, cleanup_namespaces=True, xsi_nil=True)
0 голосов
/ 06 сентября 2011

, если вы используете

etree.fromstring(xml_response)

затем делаем это:

xml_response.replace(' xmlns:', ' xmlnamespace:').replace(' xmlns=', ' xmlnamespace=')

избегает анализа пространств имен

...