Wie kann ich KML-Dateien mit Perl analysieren?

Ich versuche, eine KML-Datei mit Perl zu analysieren. Ich versuche es zu benutzenXML::Simple Modul dafür.

Ich möchte nämlich jeden Ortsmarker durchgehen und einige Daten extrahieren

1) Mcode
2) Koordinaten

Nach dem Lesen mehrerer Beiträge habe ich Folgendes versucht, um nur die Koordinaten aller Punkte auszudrucken, aber es schlägt fehl

use strict;
use warnings;
use XML::Simple;
use Data::Dumper;

my $myFile = XMLin('ExperimentMap.kml');

foreach my $folder (@{$myFile->{Document}->{Folder}->{Placemark}})  {
    print $folder->{Point}->{coordinates}."\n";
}

Ich benutze das folgende KML:

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
    <Document>
        <name>ExperimentMap</name>
        <description><![CDATA[]]></description>
        <Folder>
            <name>ExperimentLayer</name>
            <Placemark>
                <styleUrl>#icon-503-FF8277</styleUrl>
                <name>home</name>
                <ExtendedData>
                    <Data name='string'>
                        <displayName>Mcode</displayName>
                        <value>PLAAB</value>
                    </Data>
                </ExtendedData>
                <ExtendedData>
                    <Data name='string'>
                        <displayName>postal code</displayName>
                        <value>450010</value>
                    </Data>
                </ExtendedData>
                <description><![CDATA[my home


Mcode: PLAAB
postal code: 450010]]></description>
                <Point>
                    <coordinates>80.23435592651367,13.094024942328286,0.0</coordinates>
                </Point>
            </Placemark>
            <Placemark>
                <styleUrl>#icon-503-FF8277</styleUrl>
                <name>shop</name>
                <ExtendedData>
                    <Data name='string'>
                        <displayName>Mcode</displayName>
                        <value>XMPLE</value>
                    </Data>
                </ExtendedData>
                <ExtendedData>
                    <Data name='string'>
                        <displayName>postal code</displayName>
                        <value>450013</value>
                    </Data>
                </ExtendedData>
                <description><![CDATA[my shop


Mcode: XMPLE
postal code: 450013]]></description>
                <Point>
                    <coordinates>80.2437973022461,13.106230102044576,0.0</coordinates>
                </Point>
            </Placemark>
            <Placemark>
                <styleUrl>#icon-503-FF8277</styleUrl>
                <name>place3</name>
                <ExtendedData>
                    <Data name='string'>
                        <displayName>Mcode</displayName>
                        <value>UDKBL</value>
                    </Data>
                </ExtendedData>
                <ExtendedData>
                    <Data name='string'>
                        <displayName>postal code</displayName>
                        <value>578635</value>
                    </Data>
                </ExtendedData>
                <description><![CDATA[my school


Mcode: UDKBL
postal code: 578635]]></description>
                <Point>
                    <coordinates>80.24688720703125,13.096198508196448,0.0</coordinates>
                </Point>
            </Placemark>
        </Folder>
        <Style id='icon-503-FF8277'>
            <IconStyle>
                <color>ff7782FF</color>
                <scale>1.1</scale>
                <Icon>
                    <href>http://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
                </Icon>
            </IconStyle>
        </Style>
    </Document>
</kml>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage