Я пытаюсь выполнить подпись XML для веб-службы SOAP. Частично это включает в себя получение буквальной строки элемента XML и ее переваривание с использованием SHA1. Проблема, с которой я сталкиваюсь, заключается в том, что если я найду элемент для переваривания и использую функцию lxml
etree.tostring(some_element)
это единственный способ, которым я знаю, как визуализировать элемент, он не визуализируется так, как он будет отображаться в полном документе, если он будет визуализирован; в частности, lxml выводит множество определений псевдонимов пространств имен в теге. Это, конечно, означает, что если я хэширую вывод выше, результат будет отличаться от хэша, вычисленного для элемента, поскольку он отображается в полном документе, и поэтому проверка не выполняется.
Есть ли изящный способ обойти это без рендеринга всего документа и попытки регулярного выражения элемента в хеш или что-то подобное?