python zeep:将未转义的xml作为内容发送

Jun*_* Gu 6 python soap soap-client zeep

我认为我想做的事情很像zeep repo中的github问题 ---但可惜的是目前还没有任何回应。我研究了肥皂泡沫并安装并尝试了-甚至没有使发送参数正常工作,并认为zeep似乎可以更好地维护?

编辑1:确定我不是在谈论这个

dav*_*vad 8

您可以使用插件将 xml 编辑为纯字符串。我使用这个插件将字符 '<' 和 '>' 保留在 CDATA 元素中。

from xml import etree
from zeep import Plugin

class my_plugin(Plugin):

    def egress(self, envelope, http_headers, operation, binding_options):
        xml_string = etree.ElementTree.tostring(envelope)
        xml_string = xml_string.replace("&lt;", "<")
        xml_string = xml_string.replace("&gt;", ">")
        parser = etree.ElementTree.XMLParser(strip_cdata=False)
        new_envelope = etree.ElementTree.XML(xml_string, parser=parser)
        return new_envelope, http_headers
Run Code Online (Sandbox Code Playgroud)

然后只需在客户端导入插件:

client = Client(wsdl='url', transport=transport, plugins=[my_plugin()])
Run Code Online (Sandbox Code Playgroud)

看看文档:http : //docs.python-zeep.org/en/master/plugins.html