したがって、私はKMLファイルからいくつかの地理データを抽出しようとしています。私が見ているすべてのことは、xmlstarletをbashで使うことができることを示唆しています。bash、2つのノードを抽出するxmlstarlet
<?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>
読み取るように:
2015-12-24 18:20:57 -87.2788204 36.5984675 0
2015-12-24 18:20:42 -87.2784049 36.597298699999996 0
をSEDと少し処理の後、私は(単独行であることを先に変更された)サンプルデータの一部この(代表)からCSVファイルを取得しようとしています(OSX Sierra)次を使用して
、私は「GX:COORD」を抽出することができますノードが、同じことが(なぜ?)「と、」ノードには適用されません。
xmlstarlet sel -t -m '//gx:coord' -v . -n <in.kml > out.csv
一緒に初歩的なピースにしようとした後に複数のsed反復を持つソリューションでは、一貫して、きれいに作業し、最良の結果を得るソリューション(xmlstarletを「when」と「gx:coord」データを生成するソリューションとして戻します... XLSTには慣れていません) 。これを実行するためのコマンドまたはステップに関する提案?ありがとう!