Python 2.6.6 XML et attribut xmi:id =
Bonjour
Depuis quelques jours je bute sur un problème, malgré ce que je peux lire et (essayer) de comprendre.
Un fichier XML en entrée
Code:
1 2 3 4 5 6 7
| <?xml version="1.1" encoding="UTF-8"?>
<com.ibm.datastage.ai.dtm.ds:DSJobDefSDO xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com.ibm.datastage.ai.dtm.ds="http:///com/ibm/datastage/ai/dtm/ds.ecore" xmi:id="134" lastModificationTimestamp="2017-03-16T16:02:09.748+0100" ...>
<contains_JobObject xsi:type="com.ibm.datastage.ai.dtm.ds:DSLinkSDO" xmi:id="10" creationTimestamp="2017-03-16T15:06:33.999+0100" ...>
<contains_FlowVariable xsi:type="com.ibm.datastage.ai.dtm.ds:DSFlowVariableSDO" xmi:id="100" creationTimestamp="2017-03-16T15:06:33.999+0100" ...>
</contains_FlowVariable>
</contains_JobObject>
</com.ibm.datastage.ai.dtm.ds:DSJobDefSDO> |
Code:
1 2 3 4 5 6 7 8
| import xml.etree.cElementTree as ET
tree = ET.parse(<le nom complet du fichier)
root = tree.getroot()
print(root.get('creationTimestamp')) # No problemo
for parent in tree.findall('.//contains_JobObject') :
print(parent.get('creationTimestamp')) # No problemo
for node in parent.findall('./contains_FlowVariable') :
print(node.get('creationTimestamp')) # No problemo |
Je récupère bien la valeur d'un attribut par son nom comme "creationTimestamp".
Toutefois, c'est là qu'est l'os, je voudrais aussi la valeur de xmi:id
J'en suis à me dire que je vais sérialiser le fichier dans une string (500 fichiers de ~250Ko..) et remplacer chaque "xmi:id" par "xmi_id", mais je ne trouve pas cela très ... ce que vous voulez.
Quelqu'un aurait-il l'amabilité de m'indiquer comment résoudre cela, comme cela se doit d'être fait avec les libs de base ?
Merci d'avance