Je récapitule:
- Tu veux extraire le texte "DONNEE" du node <SHORT-NAME>
- Tu veux aussi extraire les valeurs de LOWER-LIMIT & UPPER-LIMIT du même parent <DATA-CONSTR>
Questions:
Ton fichier est-il gros ?
Pourquoi lxml ne marchait pas ? Je pense que cette librairie est meilleure. Sinon tu as la 4suite.
J'analyse un peu ton code et dis-moi si je me trompe, ce que tu veux faire:
Pour chaque "port" trouvéPrendre le premier SHORT-NAME.
FinPour
Pour chaque shortname trouvé (title)Extraire la donnée brute
FinPour
Tu devrais plutôt essayer cela pour récupérer tes 3 valeurs d'un coup (code non testé !!!):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
# Récupérer tous les DATA-CONSTRUCT
l_dataConstruct = doc.getElementsByTagName("DATA-CONSTRUCT")
# Pour chaque DATA-CONSTRUCT
for DC in l_dataConstruct:
# Prendre le premier SHORT-NAME sous le DC en cours
e_ShortName = DC.getElementsByTagName("SHORT-NAME")[0]
# Prendre le premier de chaque x-LIMIT
e_lowerLimit = DC.getElementsByTagName("LOWER-LIMIT")[0]
e_upperLimit = DC.getElementsByTagName("UPPER-LIMIT")[0]
# Extraire le texte de la valeur de e_ShortName
vShortName = e_ShortName.nodeValue()
# Extraire la valeur de l'attribut de e_lowerLimit
vLowerLimit = e_lowerLimit.getAttribute("INTERVAL-TYPE")
# Extraire la valeur de l'attribut de e_upperLimit
vUpperLimit = e_upperLimit.getAttribute("INTERVAL-TYPE")
# traiter ces valeurs...
functionX(vShortName, vLowerLimit, vUpperLimit) |
Partager