Skip to content

Instantly share code, notes, and snippets.

@DaniilVysotskiy
Last active September 22, 2020 21:52
Show Gist options
  • Save DaniilVysotskiy/d3151ac8c2bd5fe934ab6c95b42dc53f to your computer and use it in GitHub Desktop.
Save DaniilVysotskiy/d3151ac8c2bd5fe934ab6c95b42dc53f to your computer and use it in GitHub Desktop.
Flight plan parser: .pln -> waypoints string
<?xml version="1.0" encoding="UTF-8"?>
<SimBase.Document Type="AceXML" version="1,0">
<Descr>AceXML Document</Descr>
<FlightPlan.FlightPlan>
<Title>UWWW to UUWW</Title>
<FPType>IFR</FPType>
<RouteType>HighAlt</RouteType>
<CruisingAlt>33000</CruisingAlt>
<DepartureID>UWWW</DepartureID>
<DepartureLLA>N53° 30' 04.00",E050° 09' 14.00",+000477.00</DepartureLLA>
<DestinationID>UUWW</DestinationID>
<DestinationLLA>N55° 35' 57.00",E037° 16' 23.00",+000685.00</DestinationLLA>
<Descr>UWWW, UUWW</Descr>
<DeparturePosition>1</DeparturePosition>
<DepartureName>SAMARA/KURUMOCH</DepartureName>
<DestinationName>MOSCOW/VNUKOVO</DestinationName>
<AppVersion>
<AppVersionMajor>10</AppVersionMajor>
<AppVersionBuild>61637</AppVersionBuild>
</AppVersion>
<ATCWaypoint id="UWWW">
<ATCWaypointType>Airport</ATCWaypointType>
<WorldPosition>N53° 30' 04.00",E050° 09' 14.00",+000477.00</WorldPosition>
<ICAO>
<ICAOIdent>UWWW</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="DW">
<ATCWaypointType>NDB</ATCWaypointType>
<WorldPosition>N54° 02' 28.00",E049° 10' 42.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>DW</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="BMK">
<ATCWaypointType>VOR</ATCWaypointType>
<WorldPosition>N54° 15' 46.70",E048° 13' 31.79",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>BMK</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="GOTUN">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N54° 32' 18.00",E047° 24' 59.99",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>GOTUN</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="BT">
<ATCWaypointType>NDB</ATCWaypointType>
<WorldPosition>N54° 49' 00.00",E046° 34' 53.99",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>BT</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="BARUP">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N55° 19' 23.99",E044° 48' 34.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>BARUP</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="MB">
<ATCWaypointType>NDB</ATCWaypointType>
<WorldPosition>N55° 35' 39.99",E043° 46' 50.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>MB</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="GINOT">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N55° 33' 42.00",E043° 18' 28.99",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>GINOT</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="RELTO">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N55° 12' 47.99",E039° 42' 47.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>RELTO</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="UUWW">
<ATCWaypointType>Airport</ATCWaypointType>
<WorldPosition>N55° 35' 57.00",E037° 16' 23.00",+000685.00</WorldPosition>
<ICAO>
<ICAOIdent>UUWW</ICAOIdent>
</ICAO>
</ATCWaypoint>
</FlightPlan.FlightPlan>
</SimBase.Document>
<script id="jsbin-javascript">
const dataToParse = document.body.getElementsByTagName('FlightPlan.FlightPlan')[0];
const waypointsList = dataToParse.getElementsByTagName('atcwaypoint');
const waypointsArr = Array.from(waypointsList);
const waypointsString = waypointsArr.map(node => node.id).join(' ');
document.write('<br><br>'+waypointsString);
alert(waypointsString);
</script>
<script id="jsbin-source-html" type="text/html"><?xml version="1.0" encoding="UTF-8"?>
<SimBase.Document Type="AceXML" version="1,0">
<Descr>AceXML Document</Descr>
<FlightPlan.FlightPlan>
<Title>UWWW to UUWW</Title>
<FPType>IFR</FPType>
<RouteType>HighAlt</RouteType>
<CruisingAlt>33000</CruisingAlt>
<DepartureID>UWWW</DepartureID>
<DepartureLLA>N53° 30' 04.00",E050° 09' 14.00",+000477.00</DepartureLLA>
<DestinationID>UUWW</DestinationID>
<DestinationLLA>N55° 35' 57.00",E037° 16' 23.00",+000685.00</DestinationLLA>
<Descr>UWWW, UUWW</Descr>
<DeparturePosition>1</DeparturePosition>
<DepartureName>SAMARA/KURUMOCH</DepartureName>
<DestinationName>MOSCOW/VNUKOVO</DestinationName>
<AppVersion>
<AppVersionMajor>10</AppVersionMajor>
<AppVersionBuild>61637</AppVersionBuild>
</AppVersion>
<ATCWaypoint id="UWWW">
<ATCWaypointType>Airport</ATCWaypointType>
<WorldPosition>N53° 30' 04.00",E050° 09' 14.00",+000477.00</WorldPosition>
<ICAO>
<ICAOIdent>UWWW</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="DW">
<ATCWaypointType>NDB</ATCWaypointType>
<WorldPosition>N54° 02' 28.00",E049° 10' 42.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>DW</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="BMK">
<ATCWaypointType>VOR</ATCWaypointType>
<WorldPosition>N54° 15' 46.70",E048° 13' 31.79",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>BMK</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="GOTUN">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N54° 32' 18.00",E047° 24' 59.99",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>GOTUN</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="BT">
<ATCWaypointType>NDB</ATCWaypointType>
<WorldPosition>N54° 49' 00.00",E046° 34' 53.99",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>BT</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="BARUP">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N55° 19' 23.99",E044° 48' 34.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>BARUP</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="MB">
<ATCWaypointType>NDB</ATCWaypointType>
<WorldPosition>N55° 35' 39.99",E043° 46' 50.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>MB</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="GINOT">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N55° 33' 42.00",E043° 18' 28.99",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>GINOT</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="RELTO">
<ATCWaypointType>Intersection</ATCWaypointType>
<WorldPosition>N55° 12' 47.99",E039° 42' 47.00",+000000.00</WorldPosition>
<ICAO>
<ICAORegion>KK</ICAORegion>
<ICAOIdent>RELTO</ICAOIdent>
</ICAO>
</ATCWaypoint>
<ATCWaypoint id="UUWW">
<ATCWaypointType>Airport</ATCWaypointType>
<WorldPosition>N55° 35' 57.00",E037° 16' 23.00",+000685.00</WorldPosition>
<ICAO>
<ICAOIdent>UUWW</ICAOIdent>
</ICAO>
</ATCWaypoint>
</FlightPlan.FlightPlan>
</SimBase.Document>
</script>
<script id="jsbin-source-javascript" type="text/javascript">const dataToParse = document.body.getElementsByTagName('FlightPlan.FlightPlan')[0];
const waypointsList = dataToParse.getElementsByTagName('atcwaypoint');
const waypointsArr = Array.from(waypointsList);
const waypointsString = waypointsArr.map(node => node.id).join(' ');
document.write('<br><br>'+waypointsString);
alert(waypointsString);</script>
const dataToParse = document.body.getElementsByTagName('FlightPlan.FlightPlan')[0];
const waypointsList = dataToParse.getElementsByTagName('atcwaypoint');
const waypointsArr = Array.from(waypointsList);
const waypointsString = waypointsArr.map(node => node.id).join(' ');
document.write('<br><br>'+waypointsString);
alert(waypointsString);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment