将xml字符串转换为Python列表
发布时间:2020-12-16 22:42:53 所属栏目:百科 来源:网络整理
导读:我是 Python的新手.我想将此XML字符串显示为模板中的列表. xmlData = """?xml version="1.0" encoding="utf-8"? django-objects version="1.0"object model="task.task" pk="4"field name="name" type="CharField"New Task/fieldfield name="mission_id" typ
我是
Python的新手.我想将此XML字符串显示为模板中的列表.
xmlData = """<?xml version="1.0" encoding="utf-8"?> <django-objects version="1.0"> <object model="task.task" pk="4"> <field name="name" type="CharField">New Task</field> <field name="mission_id" type="IntegerField">2</field> <field name="parent_task_id" type="IntegerField">0</field> </object> <object model="task.task" pk="5"> <field name="name" type="CharField">New Task</field> <field name="mission_id" type="IntegerField">2</field> <field name="parent_task_id" type="IntegerField">0</field> </object> <object model="task.task" pk="6"> <field name="name" type="CharField">New ask</field> <field name="mission_id" type="IntegerField">2</field> <field name="parent_task_id" type="IntegerField">0</field> </object> <object model="task.task" pk="7"> <field name="name" type="CharField">New Task</field> <field name="mission_id" type="IntegerField">2</field> <field name="parent_task_id" type="IntegerField">0</field> </object></django-objects> """ 我只想将其显示为列表. from xml.etree import cElementTree as ET 我也做了: xmlList = ET.fromstring(xmlData) 但我不知道如何展示它.我想展示这样的东西. print xmlList.name print xmlList.mission_id print xmlList.parent_task_id 请帮我知道正确的语法. 解决方法
您可以使用此代码示例:
from xml.etree import cElementTree as ET xml = ET.fromstring(xmlData) for child in xml.iter('field'): print child.tag,child.attrib,child.text 迭代所有名为field的XML元素,并将其标记,属性和文本值打印到控制台. 查看 Django视图 为了将解析的XML数据呈现为Django应用程序中的视图,您需要view和template. 假设您的项目中安装了名为app的Django应用程序. 应用程序/ views.py from xml.etree import cElementTree as ET from django.http import HttpResponse from django.shortcuts import render from django.template import Context,loader def xml_view(request): xmlData = """<?xml version="1.0" encoding="utf-8"?> <django-objects version="1.0"> <object model="task.task" pk="4"> <field name="name" type="CharField">foo</field> <field name="mission_id" type="IntegerField">1</field> <field name="parent_task_id" type="IntegerField">20</field> </object> <object model="task.task" pk="7"> <field name="name" type="CharField">bar</field> <field name="mission_id" type="IntegerField">2</field> <field name="parent_task_id" type="IntegerField">10</field> </object></django-objects>""" xml = ET.fromstring(xmlData) fields = [] for obj in xml.iter("object"): fields.append({'name': obj.find("field[@name='name']").text,'mission_id': obj.find("field[@name='mission_id']").text,'parent_task_id': obj.find("field[@name='parent_task_id']").text,}) t = loader.get_template('your_app/xml_view.html') c = Context({'elem_list': fields}) return HttpResponse(t.render(c)) 应用程序/模板/应用/ xml_view.html <html lang="en"> <body> <table> <tr> <th>Name</th> <th>Mission ID</th> <th>Parent Task ID</th> </tr> {% for elem in elem_list %} <tr> <td>{{ elem.name }}</td> <td>{{ elem.mission_id }}</td> <td>{{ elem.parent_task_id }}</td> </tr> {% endfor %} </body> </html> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |