将xml字符串转换为html,我收到错误消息 [英] Translate xml string to html, I received error messages
问题描述
这是错误消息
code>'NoneType'对象没有属性'text'
这是我的代码
self.task_xml =<?xml version =1.0encoding =utf-8?>
< django-objects version =1.0>
< object model =task.taskpk =31>
< field name =nametype =CharField >新任务< / field>
< field name =parent_task_idtype =IntegerField> 0< / field>
< / object>
& task.taskpk =32>
< field name =nametype =CharField>新任务< / field>
< field name =parent_task_id =IntegerField> 0< / field>
< / object>
< object model =task.taskpk =33>
< field name = nametype =CharField> New Task< / field>
< field name =parent_task_idtype =IntegerField> 31< / field>
< / object>
< ob ject model =task.taskpk =34>
< field name =nametype =CharField>新任务< / field>
< field name =parent_task_idtype =IntegerField> 31< / field>
< / object>
< / django-objects>
self.xmlData = ET.fromstring(self.task_xml)
self.xmlList = []
对于self.xmlData.iter(object)中的obj:
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'])。文本,
}
我只是想从:
< object model =task.taskpk =33>
我确定这是不正确的。
id':obj.find(object [@ name ='pk'])。text
你可以帮助我知道正确的语法。
假设这是 lxml.etree
或
xml.etree.ElementTree
,你做错了,你是尝试找到带有对象
的对象
节点的节点,并且具有名称
属性为
pk
,这是不正确的。
您要执行以下操作 -
self.xmlList = []
对于self.xmlData.iter(object)中的obj:
self.xmlList.append({'id':obj.get('pk'),
'name':obj.find(field [@ name ='name'])。text,
'parent_task_id':obj.find(field [@ name ='parent_task_id'])。text,
}
obj.get('pk')
获取 pk
属性的值从对象节点。
Hi I received error messages with this.
this is the error message
'NoneType' object has no attribute 'text'
this is my code
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,
}
I just wanted to copy the id from:
<object model="task.task" pk="33">
and I am sure this isn't correct.
'id': obj.find("object[@name='pk']").text
can you please help me know the correct syntax.
Assuming this is either lxml.etree
or xml.etree.ElementTree
, you are doing it wrongly, you are trying to find a node with the object
node with tag object
and that has name
attribute as pk
, which is not correct.
You want to do the following -
self.xmlList = []
for obj in self.xmlData.iter("object"):
self.xmlList.append({'id': obj.get('pk'),
'name': obj.find("field[@name='name']").text,
'parent_task_id': obj.find("field[@name='parent_task_id']").text,
}
obj.get('pk')
gets the value of the pk
attribute from the object node.
这篇关于将xml字符串转换为html,我收到错误消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!