【发布时间】:2017-07-25 12:22:24
【问题描述】:
我有一个具有这种结构的 xml 文件:
<?DOMParser ?>
<logbook:LogBook xmlns:logbook="http://www/logbook/1.0" version="1.2">
<visits>
<visit>
<general>
<technology>EB</technology>
</general>
</visit>
<visit>
<general>
<grade>23242</grade>
<technology>EB</technology>
</general>
</visit>
</visits>
</logbook:LogBook>
我想检查visit标签中是否存在每一列,如果不存在我想返回None,所以我写了这段代码:
import xml.dom.minidom as minidom
mydict={}
columnsLst=['grade','technology']
doc=minidom.parse('file.xml')
visitcount=len(doc.getElementsByTagName('visit'))
for i in range(visitcount):
for c in columnsLst:
if(doc.getElementsByTagName(c)[i].firstChild):
mydict[c]=doc.getElementsByTagName(c)[i].firstChild.data
print(mydict)
这不起作用,因为它不会为不存在的元素返回 None 。我得到index error,因为第一个visit不存在grade。
我也尝试this solution 使用 hasChild() 但它给出了错误:
'Element' object has no attribute 'hasChild'
这里有什么想法吗?
【问题讨论】: