我正在尝试为SOAP Web服务执行XML签名。部分内容涉及获取XML元素的文字字符串并使用SHA1对其进行摘要。我遇到的问题是,如果我找到要消化的元素,并使用lxml函数
etree.tostring(some_element)
这是我知道如何渲染元素的唯一方法,它的渲染方式与完整文档中渲染时的渲染方式不同。特别是,lxml在标记中转储了大量的名称空间别名定义。这当然意味着如果我对上面的输出进行散列,结果将与元素在完整文档中呈现时计算的散列不同,因此验证失败。
在没有呈现整个文档并尝试将元素注册到哈希或类似文件的情况下,是否存在一种巧妙的方法呢?