Tout est dit dans le titre, j'ai une source XML, exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?xml version="1.0"?>
<tns:createErs>
<common:ERS
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:common="urn:crews:common:v1"
      xmlns:nor-xeu="urn:crews:nor:xeu:v1">
  <common:FMC FR="FRA" RDRT="2011-07-21T00:14:55">
    <common:CRN>OOZ20110721010202000</common:CRN>
  </common:FMC>
  <common:VES AD="NOR" RC="FPTA" DATI="2011-07-21T00:14:55" MA="KACZOR BERNARD" IR="FRA000900470">
    <nor-xeu:LAN DLHL="2011-07-19T21:30:00" PO="DKHAN">
      <common:CLC>
        <common:LSP SN="POK" RA="IVa" NE="5007" PR="GUT" TY="BOX" NU="185" AW="27"/>
        <common:LSP SN="POL" RA="IVa" NE="81" PR="GUT" TY="BOX" NU="3" AW="27"/>
      </common:CLC>
    </nor-xeu:LAN>
  </common:VES>
</common:ERS>
</tns:createErs>
Mon code, par exemple avec la lib ElementTree:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
import xml.etree.ElementTree as ET
        tree = ET.parse(monFichierXML)
        for elem in tree.getiterator():
            print elem.tag, elem.attrib
Donne ceci comme erreur:
ExpatError: unbound prefix: line 2, column 0

Mais, si pour mon test, je mets en root:
<data>
........
</data>
à la place de <tns:createErs>

ça fonctionne!

Une idée avec ElementTree (ou peut-être avec une autre lib)?
Merci,

(En fait le XML n'est pas valide mais je ne peux pas le modifier, ça vient de mon client, existe-il un moyen de parser sans tenir compte d'une balise?)