我只想显示parent_task_id == 0
的数据self.task_xml = """
<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0">
<object model="task.task" pk="31">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">0</field>
</object>
<object model="task.task" pk="32">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">0</field>
</object>
<object model="task.task" pk="33">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">31</field>
</object>
<object model="task.task" pk="34">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">31</field>
</object>
</django-objects>
"""
self.xmlData = ET.fromstring(self.task_xml)
self.xmlList = []
for obj in self.xmlData.iter("object"):
self.xmlList.append({'id': obj.find("object[@name='pk']").text,
'name': obj.find("field[@name='name']").text,
'parent_task_id': obj.find("field[@name='parent_task_id']").text,
}
如果我使用数据库
,我想做一些与模型有关的事情Task.objects.filter(parent_task_id=0)
但这次我使用的是xml字符串,它有什么功能吗?
答案 0 :(得分:1)
同样,您获取id
的方法有误,您需要从pk
节点获取属性object
,而不是 - obj.find("object[@name='pk']").text
- 正如已经回答的那样 - Translate xml string to html, I received error messages。
然后,对于当前所需的信息,只需获取信息 - obj.find("field[@name='parent_task_id']").text
,并检查它是否等于0
,并且仅当它等于0
时,将数据附加到xmlList
示例 -
self.xmlList = []
for obj in self.xmlData.iter("object"):
parent_task_id = obj.find("field[@name='parent_task_id']").text
if parent_task_id == '0':
self.xmlList.append({'id': obj.get('pk'),
'name': obj.find("field[@name='name']").text,
'parent_task_id': ,
}