我如何使用 Spyne return 一个 XML 文件?
How can I return an XML file with Spyne?
我有 Flask-Spyne 服务器(网络服务),我想 return (return 给客户,他会问)一个 XML 文件.
我想这样做:
- 我会把一些东西从数据库放到XML。 (已解决)
- 我已将 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
如果您想 return 它作为文档中的常规字符串,您必须将 _return 类型设置为 Unicode
.
如果您想 return 它作为 xml 文档,您必须解析它 (etree.parse("Databaze.xml")
) 和 return 生成的 ElementTree 实例。在这种情况下,您的 return 类型应该是 AnyXml
.
另见这些例子:
作为字符串发送会将您的文档与父上下文隔离开来。它的效率有点低(例如 <
字符变为 <
)但在其他方面无害。
作为文档发送使您的文档成为 SOAP 消息的一部分。它效率更高,但它会从父文档继承名称空间前缀,这可能会导致文档发生轻微变化——即您输入的内容和返回的内容可能逐字节不相等(但仍然等效)。
这完全取决于用例。如有疑问,return as string.
我有 Flask-Spyne 服务器(网络服务),我想 return (return 给客户,他会问)一个 XML 文件.
我想这样做:
- 我会把一些东西从数据库放到XML。 (已解决)
- 我已将 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
如果您想 return 它作为文档中的常规字符串,您必须将 _return 类型设置为 Unicode
.
如果您想 return 它作为 xml 文档,您必须解析它 (etree.parse("Databaze.xml")
) 和 return 生成的 ElementTree 实例。在这种情况下,您的 return 类型应该是 AnyXml
.
另见这些例子:
作为字符串发送会将您的文档与父上下文隔离开来。它的效率有点低(例如 <
字符变为 <
)但在其他方面无害。
作为文档发送使您的文档成为 SOAP 消息的一部分。它效率更高,但它会从父文档继承名称空间前缀,这可能会导致文档发生轻微变化——即您输入的内容和返回的内容可能逐字节不相等(但仍然等效)。
这完全取决于用例。如有疑问,return as string.