Web服务生成的XML代码无效

时间:2016-10-10 20:48:36

标签: python xml python-2.7 web-services web2py

似乎@service.xml中的@service.xml def concat(a, b): return a + b 装饰器已被破坏。

>>> from urllib import urlopen
>>> r = urlopen("http://127.0.0.1:8000/webservice/default/call/xml/concat/hello/
world")
>>> r.read()
'<?xml version="1.0" encoding="UTF-8"?>helloworld'

结果是:

@service.json
def concat(a, b):
    return a + b

缺少产生无效XML的最后一部分。

但是,JSON和CSV运行良好。

>>> r = urlopen("http://127.0.0.1:8000/webservice/default/call/json/concat/hello
/world")
>>> r.read()
'"helloworld"'

测试:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$( "#button_toggle_XRT").click(function() {
        $( "#XRT_overview").slideToggle(1000);
});
});
</script>

我正在脚手架应用程序的副本中测试它。我错过了什么,或者这确实是一个问题?

1 个答案:

答案 0 :(得分:1)

我认为这只是本书中的一个不好的例子。要生成有效的XML,该函数应返回列表或字典(或具有.as_list.as_dict.custom_xml方法的对象。例如:

@service.xml
def concat(a, b):
    return dict(result=a + b)

产生

<?xml version="1.0" encoding="UTF-8"?>
<document>
  <result>helloworld</result>
</document>