2 import xml.etree.ElementTree
as ET
10 estrae dal file XML i dati dell'elenco prezzi
11 I dati estratti avranno il formato seguente:
21 artList = { codice : articolo, ... }
23 superCatList = { codice : descrizione, ... }
24 catList = { codice : descrizione, ... }
28 'superCategorie': superCatList,
47 titolo = root.find(
'pdf').text
51 titolo =
' '.join(titolo.split(
'_'))
57 capitoli = root.find(
'capitoli')
59 for Capitolo
in capitoli:
62 codiceSuperCat = Capitolo.find(
'codice').text
63 superCat = Capitolo.find(
'descrizione').text.strip()
65 if not codiceSuperCat
in superCatList:
66 superCatList[codiceSuperCat] = superCat
68 categorie = Capitolo.find(
'categorie')
69 for Categoria
in categorie:
70 codiceCat = codiceSuperCat +
'.' + Categoria.find(
'codice').text
71 Cat = Categoria.find(
'descrizione').text
72 if not codiceCat
in catList:
73 catList[codiceCat] = Cat
76 voci = Categoria.find(
'voci')
78 voce = Voce.find(
'descrizione').text
80 Scodice = codiceCat +
'.' + Voce.find(
'codice').text
81 sottovoci = Voce.find(
'sottovoci')
82 for Sottovoce
in sottovoci:
83 codice = Scodice +
'.' + Sottovoce.find(
'codice').text
85 desc = voce +
'\n- ' + Sottovoce.find(
'descrizione').text
88 um = Sottovoce.find(
'unitaMisura').find(
'codice').text.strip()
89 prezzo = float(Sottovoce.find(
'prezzo').text)
90 mdo = float(Sottovoce.find(
'manodopera').text) / 100
95 desc = desc.replace(
'\t',
' ').replace(
'è',
'è'
96 ).replace(
'°',
'°').replace(
'Ã',
'à').replace(
97 ' $',
'').replace(
'#13;',
' ').replace(
'\n \n',
'\n')
99 desc = desc.replace(
' ',
' ')
100 while '\n\n' in desc:
101 desc = desc.replace(
'\n\n',
'\n')
117 'superCategorie': superCatList,
118 'categorie': catList,