-
Notifications
You must be signed in to change notification settings - Fork 0
/
update_xml_topo_p32.py
63 lines (56 loc) · 2.32 KB
/
update_xml_topo_p32.py
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
import os
# import shutil
import lxml.etree as ET
paths = []
for path in paths:
for subdir, dirs, files in os.walk(path):
for file in files:
if not file.endswith(".xml"):
continue
# shutil.copy(os.path.join(subdir, file), r'D:\_MACIEK_\python_proby')
lines = ""
xml_file = os.path.join(subdir, file)
my_namespaces = dict(
[
node
for _, node in ET.iterparse(xml_file, events=["start-ns"])
]
)
with open(xml_file, "r", encoding="utf-8") as xml:
wodgik = "Wojewódzki Ośrodek Dokumentacji Geodezyjnej i Kartograficznej w Łodzi"
marszalek = "Marszałek"
wodgik_count = 0
skip = 0
ulica = 0
for line in xml:
if wodgik in line:
wodgik_count += 1
if "<gmd:pointOfContact>" in line and wodgik_count == 2:
lines += line
skip = 1
continue
elif "</gmd:pointOfContact>" in line and skip == 1:
lines += line
skip = 0
continue
elif skip == 1:
continue
elif marszalek in line:
ulica = 1
lines += line
continue
elif ulica == 1 and "ul. Solna 14" in line:
lines += "\t\t\t\t\t\t\t\t\t\t<gco:CharacterString>al. Piłsudskiego 8</gco:CharacterString>\n"
continue
elif ulica == 1 and "91-423" in line:
lines += "\t\t\t\t\t\t\t\t\t\t<gco:CharacterString>90-051</gco:CharacterString>\n"
ulica = 0
continue
else:
lines += line
with open(xml_file, "w", encoding="utf-8") as xml:
xml.write(lines)
ET.register_namespace = my_namespaces
tree = ET.parse(xml_file)
with open(xml_file, "wb") as openfile:
tree.write(openfile, encoding="UTF-8", xml_declaration=True)