Lecture Fichier XML problème avec enfant
Bonjour à tous,
J'ai un fichier xml construit de cette manière:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<File>
<Version>48829212</Version>
<SenderNr>50054512552</SenderNr>
<SenderName>SenderName</SenderName>
<ReceiverNr>0526206</ReceiverNr>
<ReceiverName>ReceiverName</ReceiverName>
<CreationDateTime>20150812</CreationDateTime>
<StartDate>20151114</StartDate>
<EndDate>20151120</EndDate>
<Sales>
<Sale>
<Id>485654256</Id>
<Name>Name</Name>
<Firstname>Firstname</Firstname>
<SalesID>01</SalesID>
<Location1>Tae</Location1>
<Location2>5515</Location2>
<Birthdate>20150431</Birthdate>
<NameSale>Jean</NameSale>
<RegNr>2466822552004</RegNr>
<Products>
<Product>
<ProductId>5865455</ProductId>
<ProductIdHouse>05525452</ProductIdHouse>
<Speciality>1</Speciality>
<Description>Product</Description>
<TabletUnidose>1</TabletUnidose>
<Start>20120110</Start>
<Administrations>
<Administration>
<Quantity>0.50</Quantity>
<AdministrationDate>20151114</AdministrationDate>
<AdministrationHour>0800</AdministrationHour>
</Administration>
<Administration>
<Quantity>0.50</Quantity>
<AdministrationDate>20151115</AdministrationDate>
<AdministrationHour>0800</AdministrationHour>
</Administration>
<Administration>
<Quantity>0.50</Quantity>
<AdministrationDate>20151116</AdministrationDate>
<AdministrationHour>0800</AdministrationHour>
</Administration>
</Administrations>
</Product>
<Product>
<ProductId>78985</ProductId>
<ProductIdHouse>588585</ProductIdHouse>
<Speciality>1</Speciality>
<Description>Product</Description>
<TabletUnidose>1</TabletUnidose>
<Start>20110513</Start>
<Administrations>
<Administration>
<Quantity>1.00</Quantity>
<AdministrationDate>20151114</AdministrationDate>
<AdministrationHour>2000</AdministrationHour>
</Administration>
<Administration>
<Quantity>1.00</Quantity>
<AdministrationDate>20151115</AdministrationDate>
<AdministrationHour>2000</AdministrationHour>
</Administration>
</Administrations>
</Product>
</Products>
</Sale>
</Sales>
</File> |
J'arrive à récupérer les Sales,
grâce à ce code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
doc = minidom.parse('sales.xml')
root = doc.documentElement
current = root.firstChild
for element in root.getElementsByTagName('Sale') :
sale= Sales.Sales(element.childNodes[1].childNodes[0].nodeValue,
element.childNodes[2].childNodes[0].nodeValue,
element.childNodes[3].childNodes[0].nodeValue,
element.childNodes[6].childNodes[0].nodeValue,
element.childNodes[7].childNodes[0].nodeValue,
element.childNodes[8].childNodes[0].nodeValue,None)
try:
sale.setId(element.childNodes[0].childNodes[0].nodeValue)
except:
print 'error pas d id' |
Est ce qu'il y a possibilité d'optimiser ce code ?
Et ma deuxième question est comment je peux récupérer les éléments du Product, ainsi que les informations concernant les Administrations du Product ?
J'ai essayé cette méthode
Code:
1 2 3
|
for elt in root.getElementsByTagName('Product') :
print elt.childNodes[0].childNodes[0].nodeValue |
Mais alors je ne sais pas quels produits est lié à quelles Sale.
D'avance Merci,