Also, ich versuche, einige Geodaten aus einer KML-Datei zu extrahieren. Alles, was ich sehe, deutet darauf hin, dass ich xmlstarlet in bash verwenden könnte. Ich versuche, eine CSV-Datei aus diesem (Vertreter) Teil der Beispieldaten zu erhalten (modifizierte früher einzelne Zeile zu sein):bash, xmlstarlet, um zwei Knoten zu extrahieren
<?xml version='1.0' encoding='UTF-8'?><kml xmlns='http://www.opengis.net/kml/2.2' xmlns:gx='http://www.google.com/kml/ext/2.2'><Document><Placemark><open>1</open><gx:Track><altitudeMode>clampToGround</altitudeMode><when>2015-12-24T18:20:57Z</when><gx:coord>-87.2788204 36.5984675 0</gx:coord><when>2015-12-24T18:20:42Z</when><gx:coord>-87.2784049 36.597298699999996 0</gx:coord></gx:Track></Placemark></Document></kml>
, der liest:
2015-12-24 18:20:57 -87.2788204 36.5984675 0
2015-12-24 18:20:42 -87.2784049 36.597298699999996 0
Nach einer kleinen Verarbeitung mit sed (OSX Sierra).
die folgende Verwendung, kann ich das „gx: Koor“ extrahieren Knoten, aber das gleiche mit dem „wann“ Knoten nicht anwendbar ist (warum?):
xmlstarlet sel -t -m '//gx:coord' -v . -n <in.kml > out.csv
Nach dem Versuch, zusammen rudimentär Stück Lösungen mit mehreren sed-Iterationen, ich bin zurück darauf als die Lösung, die konsistent, sauber arbeiten und das beste Ergebnis liefern würde (xmlstarlet, um die "wann" - und "gx: coord" -Daten zu liefern ... Ich bin mit XLST nicht vertraut) . Vorschläge für den Befehl oder Schritte, um dies zu erreichen? Vielen Dank!