2015-08-20 4 views
1

Привет Я получил сообщения об ошибках с этим.Перевести xml строку в html, я получил сообщения об ошибках

это сообщение об ошибке

'NoneType' object has no attribute 'text' 

это мой код

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, 
        } 

Я просто хотел, чтобы скопировать идентификатор из:

<object model="task.task" pk="33"> 

, и я уверен, что это ISN» t правильно.

'id': obj.find("object[@name='pk']").text 

Не могли бы вы помочь мне узнать правильный синтаксис.

ответ

0

Предполагая, что это либо lxml.etree или xml.etree.ElementTree, вы делаете это неправильно, вы пытаетесь найти узел с object узла с тегом object и имеет name атрибут как pk, который не является правильным.

Вы хотите сделать следующее -

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') получает значение атрибута pk от узла объекта.

+0

Большое вам спасибо ... Сейчас это работает ...:) –

Смежные вопросы