我正在尝试在django模板中显示SOAP请求的结果。
结果是xml所以我使用BeautifulSoup来处理数据,并希望在我的django模板中访问BeautifulSoup对象,循环遍历每个元素并按名称调用它们的子元素
{% for item in bs_data %}
{{ item.child1.text }} {{ item.child2.text }}
{% endfor %}
我可以在python中执行此操作,但是我的django模板似乎将BeautifulSoup元素视为没有子元素,虽然它将遍历bs_data item.child1中的项目为空,因为item.0
我甚至无法遍历每个元素的子元素。
我已遍历视图中的元素并创建嵌套列表以获得相同的结果但是如果有人知道如何说服django模板来解析我想知道的美丽的汤对象。
修改
OK所以使用下面的示例xml我可以打印不同的元素并逐步浏览打印文本的元素。以下代码:
b = BeautifulSoup.BeautifulSoup("<note>\
<to>Tove</to>\
<from>Jani</from>\
<heading>Reminder</heading>\
<body>Don't forget me this weekend!</body>\
</note>")
print b.to
print b.body
for i in b:
print i.text
结果如下:
<to>Tove</to>
<body>Don't forget me this weekend!</body>
ToveJaniReminderDon't forget me this weekend!
但是我不能在django模板中复制这个,b传入模板,因为它在上面的python代码中
模板代码:
{{ b.to }}
{{ b.body }}
{% for i in b %}
{% i.text %}
{% endfor %}
没有结果,但是以下内容:
{{ b }}
显示BeautifulSoup对象