Pages : 1
#1 Le 26/08/2021, à 13:41
- kboo
xpath et xml.etree.ElementTree
Bonjour,
je galère avec un xpath et xml.etree.ElementTree, voici un exemple de xml:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<AAAA xmlns="http://qd/azz/ccc">
<BBB xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CCC>
<DDD>
<EEE>123456</EEE>
<FFF>23/06/2021 16:00:00</FFF>
<GGG>23/06/2021 17:00:00</GGG>
<HHH i:nil="true"/>
<III i:nil="true"/>
</DDD>
<DDD>
<EEE>123457</EEE>
<FFF>05/07/2021 10:00:00</FFF>
<GGG>05/07/2021 11:00:00</GGG>
<HHH i:nil="true"/>
<III i:nil="true"/>
</DDD>
<DDD>
<EEE>123458</EEE>
<FFF>19/07/2021 15:00:00</FFF>
<GGG>19/07/2021 16:00:00</GGG>
<HHH i:nil="true"/>
<III i:nil="true"/>
</DDD>
</CCC>
<CodeRetour>1</CodeRetour>
<Message>blablabla</Message>
</BBB>
</AAAA>
</s:Body>
</s:Envelope>et j'essaye d'avoir tous les EEE sous forme de liste.. help !!!
merci d'avance
Dernière modification par kboo (Le 26/08/2021, à 13:54)
Hors ligne
#2 Le 26/08/2021, à 23:15
- Vobul

Re : xpath et xml.etree.ElementTree
un truc comme ça ?
import xml.etree.ElementTree as ET
tree = ET.parse('a.xml')
root = tree.getroot()
mylist = []
for neighbor in root.iter('*'):
if neighbor.tag.endswith('EEE'):
mylist.append(neighbor.text)
print(mylist)Ça donne comme résultat :
['123456', '123457', '123458']À noter que c'est la toute première fois que j'utilise ce module et que je ne manipule quasiment jamais du XML ![]()
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
Hors ligne
#3 Le 27/08/2021, à 00:36
- Lolorase
Re : xpath et xml.etree.ElementTree
Hello,
Personnellement pour ce genre de chose, je trouve xml.dom.minidom plus efficace :
from xml.dom import minidom
doc = minidom.parse('test.xml')
root = doc.documentElement
list_de_eee = []
for element in root.getElementsByTagName('EEE') :
list_de_eee.append(element.firstChild.nodeValue)Dernière modification par Lolorase (Le 27/08/2021, à 00:51)
Hors ligne
#4 Le 27/08/2021, à 03:05
- Vobul

Re : xpath et xml.etree.ElementTree
en plus c'est mignon "minidom" ![]()
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
Hors ligne