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.
RTFM
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.
RTFM
Hors ligne