1
+ '''
2
+
3
+ Introduction To Computing Using Python (Werkboek)
4
+
5
+ Final Assignment: XML-stationslijsten
6
+ In deze opdracht lees je gegevens uit een XML-bestand. Dit bestand is op de
7
+ volgende bladzijde gegeven. Het bestand kun je overnemen voor je eigen
8
+ programma: en bevat de gegevens van vier stations. Van ieder station is
9
+ staat vermeld:
10
+
11
+ - Code
12
+ - Type
13
+ - Namen (Kort, Middel & Lang)
14
+ - Land
15
+ - Synoniemen (niet altijd aanwezig)
16
+
17
+ Lees de gegevens uit het bestand en plaats deze in een dict! Laat je programma
18
+ nu achtereenvolgens de onderstaande gegevens afdrukken op het scherm:
19
+
20
+ 1. Van alle stations de code en het type.
21
+ 2. Van alle stations de code en synoniemen (maar alleen als er
22
+ synoniemen zijn).
23
+ 3. Van alle stations de code en de lange naam.
24
+
25
+ Let op: bij stap 2 mag je de dict met alle synoniemen uitprinten, maar dat kan
26
+ natuurlijk netter. Bij stap 3 is het de bedoeling dat je wel netjes de lange
27
+ naam van een station uit de namen-dict haalt!
28
+
29
+ Mogelijke uitvoer:
30
+ Dit zijn de codes en types van de 4 stations:
31
+ HT - knooppuntIntercitystation
32
+ ALMO - stoptreinstation
33
+ ATN - stoptreinstation
34
+ ASA - intercitystation
35
+
36
+ Dit zijn alle stations met één of meer synoniemen:
37
+ HT - OrderedDict([('Synoniem', ["Hertogenbosch ('s), 'Den Bosch'])])
38
+
39
+ Dit is de lange naam van elk station:
40
+ HT - 's-Hertogenbosch
41
+ ALMO - Almere Oostvaarders
42
+ ATN - Aalten
43
+ ASA - Amsterdam Amstel
44
+
45
+ '''
46
+ import xmltodict
47
+
48
+ with open ('stations.xml' ) as file :
49
+ document = xmltodict .parse (file .read ())
50
+ # Codes en types van 4 stations.
51
+ print ('Dit zijn de codes en types van de 4 stations:' )
52
+ for station in document ['Stations' ]['Station' ]:
53
+ print ('{0:4} - {1}' .format (station ['Code' ], station ['Type' ]))
54
+
55
+ # Stations met synoniemen.
56
+ print ('\n Dit zijn alle stations met één of meer synoniemen:' )
57
+ for station in document ['Stations' ]['Station' ]:
58
+ if (station ['Synoniemen' ]):
59
+ synoniemen = station ['Synoniemen' ]['Synoniem' ]
60
+ print ('{0:4} - {1}' .format (station ['Code' ], ', ' .join (synoniemen )))
61
+
62
+ # Lange naam van elk station.
63
+ print ('\n Dit is de lange naam van elk station:' )
64
+ for station in document ['Stations' ]['Station' ]:
65
+ print ('{0:4} - {1}' .format (station ['Code' ], station ['Namen' ]['Lang' ]))
0 commit comments