Ich versuche, eine XML-Datei zu analysieren, hängt von einem Tag ab, der vorhanden sein kann oder nicht!Parsing XML-Datei hängt von Tags ab, die möglicherweise nicht vorhanden sind
Wie kann ich diese IndexError vermeiden, ohne Ausnahme Handler zu verwenden?
Python-Skript:
#!/usr/bin/python3
from xml.dom import minidom
doc = minidom.parse("Data.xml")
persons = doc.getElementsByTagName("person")
for person in persons:
print(person.getElementsByTagName("phone")[0].firstChild.data)
data.xml:
<?xml version="1.0" encoding="UTF-8"?>
<obo>
<Persons>
<person>
<id>XA123</id>
<first_name>Adam</first_name>
<last_name>John</last_name>
<phone>01-12322222</phone>
</person>
<person>
<id>XA7777</id>
<first_name>Anna</first_name>
<last_name>Watson</last_name>
<relationship>
<type>Friends</type>
<to>XA123</to>
</relationship>
<!--<phone>01-12322222</phone>-->
</person>
</Persons>
</obo>
und ich erhalte eine Indexerror:
01-12322222
Traceback (most recent call last):
File "XML->Neo4j-try.py", line 29, in <module>
print(person.getElementsByTagName("phone")[0].firstChild.data)
IndexError: list index out of range
Warum nicht Sie verwenden mögen Ausnahmehandler? Ich denke, es ist der gute Weg, das zu tun. Sie können If-else-Klauseln verwenden, um sicherzustellen, dass eine Ebene existiert. Aber dieser Weg ist nicht wirklich dynamisch. Sie können nicht wissen, wie viel Level es hat. – trantu
cos Ich habe große XML-Datei, die - ich denke - lange braucht, um zu analysieren, wenn es viele Ausnahmen gibt Handler plz check [this] (http://stackoverflow.com/questions/37022525/loading-data-to-neo4j -von-xml-using-py2neo) – Zingo