Как да изобразя XML елемент така, както ще бъде изобразен в целия документ?

Опитвам се да изпълня XML подписване за SOAP уеб услуга. Част от това включва вземане на буквалния низ на XML елемент и усвояването му с помощта на SHA1. Проблемът, който имам, е, че ако намеря елемента за усвояване и използвам функцията lxml

etree.tostring(some_element)

което е единственият начин, по който знам как да изобразя елемента, той не се изобразява по същия начин, както би се появил в целия документ, ако това е изобразено; по-специално, lxml изхвърля много дефиниции на псевдоними на пространство от имена в тага. Това разбира се означава, че ако хеширам изхода от горното, резултатът ще бъде различен от хеша, изчислен върху елемента, тъй като той е изобразен в рамките на целия документ, и така проверката е неуспешна.

Има ли добър начин да се заобиколи това, без да се изобразява целият документ и да се опитвате да reg-ex елемента до хеширане или подобно?


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