Есть два kml файла, которых мне нужно обработать. Первый файл:
<kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark>
<name>REG000478/1</name>
<description>Область\16а</description>
<Point>
<coordinates>132.149558,24.127582,0</coordinates>
</Point>
</Placemark> <Placemark>
<name>REG000479/1</name>
<description>Область\16а</description>
<Point>
<coordinates>132.464464,24.464465,0</coordinates>
</Point>
</Placemark><Placemark>
<name>REG000480/1</name>
<description>Область\16а</description>
<Point>
<coordinates>132.644645,24.674676,0</coordinates>
</Point>
</Placemark></kml>
Второй файл:
<kml xmlns="http://www.opengis.net/kml/2.2"><Folder>
<Placemark>
<name>REG2046</name>
<description>BSC: 461255 LAC: 5263</description>
<LookAt>
<longitude>131.617857694465</longitude>
<latitude>46.170367946112</latitude>
<altitude>0</altitude>
<heading>1</heading>
<tilt>0</tilt>
<range>10000</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>grn-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>131.617857694465,46.170367946112</coordinates>
</Point>
</Placemark>
<Placemark>
<name>REG2048</name>
<description>BSC: 461255 LAC: 5263</description>
<LookAt>
<longitude>131.629717201179</longitude>
<latitude>46.1575287309287</latitude>
<altitude>0</altitude>
<heading>1</heading>
<tilt>0</tilt>
<range>10000</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>grn-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>131.629717201179,46.1575287309287</coordinates>
</Point>
</Placemark>
<Placemark>
<name>REG2049</name>
<description>BSC: 461255 LAC: 5263</description>
<LookAt>
<longitude>131.611383223499</longitude>
<latitude>46.1575287682282</latitude>
<altitude>0</altitude>
<heading>1</heading>
<tilt>0</tilt>
<range>10000</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>grn-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>131.611383223499,46.1575287682282</coordinates>
</Point>
</Placemark>
</Folder></kml>
Сложность у меня в том, что они тут разной структуры.
Как мне написать условие, чтобы в выборе файла допустим по первой структуры отображались данные на экране из атрибутов name и coordinates, а при выборе файла второй структуры отображались данные на экране из атрибутов name, description, longitude и latitude?
не перебирать же циклы, как в моем коде.
Сейчас у меня такой код:
import re
with open("Site_REG000478_1.kml","r", encoding="utf8") as file:
#with open("REG.kml","r", encoding="utf8") as file:
contents = file.read()
#print(contents)
Placemark = re.findall(r'<Placemark>(.*?)</Placemark>', contents, re.DOTALL)
#print(Placemark)
count=0
for i in Placemark:
#print(i)
listname = re.findall(r'<name>(.*?)</name>', i, re.DOTALL)
coords = re.findall(r'<coordinates>(.*?)</coordinates>', i, re.DOTALL)
#print(listname)
#print(coords)
for k in listname:
result = k.split('/')[0]
print(result)
'''with open("output.txt", "w") as outfile:
outfile.write(result+'\n')'''
for j in coords:
result = j.split(',')[:2]
print(result)
'''with open("output.txt", "a") as outfile:
outfile.write(result+'\n')'''
Вот такие выводы на экране у меня отображаются:
REG000478
['132.149558', '24.127582']
REG000479
['132.464464', '24.464465']
REG000480
['132.644645', '24.674676']
REG2046
['131.617857694465', '46.170367946112']
REG2048
['131.629717201179', '46.1575287309287']
REG2049
['131.611383223499', '46.1575287682282']