仅在可用时从XML值中提取值

时间:2019-03-02 06:31:26

标签: python

这里的新手,尝试从XML文件内的标签中提取值:docid,年份,被引用的工作。但是,并非所有条目都包含quotedWork标记。

enter image description here

此刻,我收到:

AttributeError:'NoneType'对象没有属性'text'

关于如何将此条件纳入脚本的任何建议?谢谢!

for element in root.findall(".//return/references"):
list_nodes=[]

if count == 0:
    doc_id= element.find('docid').tag
    result.append(doc_id)

    year= element.find('year').tag
    result.append(year)

    cit_title= element.find('citedTitle').tag
    result.append(cit_title)

    cit_work= element.find('citedWork').tag
    result.append(cit_work)

    CSV_writer.writerow(result)
    count = +1

doc_id= element.find('docid').text
list_nodes.append(doc_id)

year= element.find('year').text
list_nodes.append(year)

cit_title= element.find('citedTitle').text
list_nodes.append(cit_title)

cit_work= element.find('citedWork').text
list_nodes.append(cit_work)    


CSV_writer.writerow(list_nodes)

xml_csv.close()

2 个答案:

答案 0 :(得分:1)

cit_work= element.find('citedWork').tag
cit_work= element.find('citedWork').text

在这些情况下,如果您预计'c​​itedWork'可能不存在,则可以在尝试访问其任何属性之前检查find的返回值是否不是None。< / p>

cit_work_elem = element.find('citedWork')
if cit_work_elem:
    cit_work = cit_work_elem.text

答案 1 :(得分:0)

尝试以下代码,

mode: 'external'

如果xml文件中不存在,则为None。试试吧!