我正在使用 minidom 解析器解析 XML 文件,我在其中迭代 XML 并将位于标签之间的特定信息输出到字典中。
像这样:
d={}
dom = parseString(data)
macro=dom.getElementsByTagName('macro')
for node in macro:
d={}
id_name=node.getElementsByTagName('id')[0].toxml()
id_data=id_name.replace('<id>','').replace('</id>','')
print (id_data)
cl_name=node.getElementsByTagName('cl')[1].toxml()
cl_data=cl_name.replace('<cl>','').replace('</cl>','')
print (cl_data)
d_source[id_data]=(cl_data)
现在,我的问题是我在 cl_name=node.getElementsByTagName('cl')[1].toxml() 中寻找的数据有时不存在!
在这种情况下,XML 的一部分如下所示:
<cl>blabla</cl>
<cl></cl>
因此,我收到“索引超出范围”错误。但是,我的字典中确实需要这个“无”。我的字典应该是这样的:
d={blabla:'',xyz:'abc'}
我必须寻找空文本节点,我尝试这样做:
if node.getElementsByTagName('cl')[1].toxml is None:
print ('')
else:
cl_name=node.getElementsByTagName('cl')[1].toxml()
cl_data=cl_name.replace('<cl>','').replace('</cl>','')
print (cl_data)
d_target[id_data]=(cl_data)
print(d_target)
我仍然收到该索引错误...我还考虑在原始源文件中插入一个空格,但不确定这是否能解决问题。有任何想法吗?