我有 Flask-Spyne 服务器(网络服务),我想返回(在他询问后返回客户端) XML文件。
我想这样做:
有办法怎么做?
这是我的代码:
class Service(spyne.Service):
__service_url_path__ = '/soap';
__in_protocol__ = Soap11(validator='lxml');
__out_protocol__ = Soap11();
@spyne.srpc(DateTime, DateTime, _returns="What to put here?")
def Function(A,B):
GetXML(A,B)
s = open("file.xml");
return s;
if __name__ == '__main__':
app.run(host = '127.0.0.1');
非常感谢任何帮助.. :)
修改
所以,现在这是我的代码:(发送字符串)
@spyne.srpc(DateTime, DateTime, _returns=Iterable(Unicode))
def oracle(A,B):
GetXML(A,B)
s = open("file.xml");
return s
答案 0 :(得分:1)
如果要将其作为常规字符串返回到文档中,则必须将_return类型设置为Unicode
。
如果要将其作为xml文档返回,则必须解析它(etree.parse("Databaze.xml")
)并返回生成的ElementTree实例。在这种情况下,您的返回类型应为AnyXml
。
另见这些例子:
作为字符串发送将文档与父上下文隔离开来。这样效率更低(例如<
字符变为<
)但其他方面无害。
作为文档发送使您的文档成为SOAP消息的一部分。它更有效但是它从父文档继承了名称空间前缀,这可能会对文档造成轻微的改变 - 即你输入的内容和你得到的内容可能不是逐字节相等的(但仍然是等效的)。 / p>
完全取决于用例。如有疑问,请以字符串形式返回。