Как визуализировать XML-элемент так, как он будет отображаться во всем документе?

Я пытаюсь выполнить подпись XML для веб-службы SOAP. Частично это включает в себя получение буквальной строки элемента XML и ее переваривание с использованием SHA1. Проблема, с которой я сталкиваюсь, заключается в том, что если я найду элемент для переваривания и использую функцию lxml

etree.tostring(some_element)

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

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


person Sam Svenbjorgchristiensensen    schedule 13.05.2014    source источник
comment
возможный дубликат Как сообщить lxml. etree.tostring(element) не писать пространства имен в python?   -  person Matthew Trevor    schedule 13.05.2014
comment
Я видел этот пост раньше. Аналогично, но я не думаю, что это распространяется на мой senario   -  person Sam Svenbjorgchristiensensen    schedule 13.05.2014
comment
Проблема, как указано, оказалась неактуальной, поскольку мое понимание XML-подписи улучшилось; Требовалось, чтобы этот элемент был «канонизирован» до того, как он будет обработан, и это делает несущественной любую разницу между визуализацией семантически эквивалентных поддеревьев XML.   -  person Sam Svenbjorgchristiensensen    schedule 20.05.2014
comment
Вы должны добавить это как ответ самостоятельно или просто удалить вопрос, если он не актуален.   -  person Matthew Trevor    schedule 20.05.2014