Comment puis-je vérifier l'existence d'attributs et balises XML avant l'analyse?
Je suis à l'analyse d'un fichier XML via l'Élément de l'Arbre en python et la et la rédaction du contenu d'un fichier cpp.
Le contenu d'enfants balises seront variante pour les différentes balises. Par exemple le premier événement balise balise fête de l'enfant mais la deuxième balise événement n'a pas.
-->Comment puis-je vérifier si une balise existe ou pas avant l'analyse?
-->les Enfants ont de la valeur de l'attribut dans le 1er cas balise, mais pas dans le deuxième. Comment puis-je vérifier si un attribut existe ou pas avant de prendre de la valeur.
--> Actuellement mon code génère une erreur non existante partie de la balise et définit un "None" valeur de l'attribut pour la deuxième enfants balise.
<main>
<event>
<party>Big</party>
<children type="me" value="3"/>
</event>
<event>
<children type="me"/>
</event>
</main>
Code:
import xml.etree.ElementTree as ET
tree = ET.parse('party.xml')
root = tree.getroot()
for event in root.findall('event'):
parties = event.find('party').text
children = event.get('value')
Je veux vérifier les étiquettes et ensuite prendre leurs valeurs.
Vous devez vous connecter pour publier un commentaire.
Si une balise n'existe pas,
.find()
, en effet, renvoieNone
. Testez simplement pour cette valeur:Vous utilisez déjà
.get()
sur les cas de test pour levalue
l'attribut; elle renvoieNone
ainsi si l'attribut n'existe pas.Attributs sont stockés dans le
.attrib
dictionnaire, de sorte que vous pouvez utiliser standard de Python techniques de test pour l'attribut explicitement trop: