将xml字符串转换为html,我收到错误消息 [英] Translate xml string to html, I received error messages

查看:148
本文介绍了将xml字符串转换为html,我收到错误消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



这是错误消息

 

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆