とらりもんHOME  Index  Search  Changes  Login

XML

read attribute from a XML file

normal way

$ xmllint --xpath "/isd/IMD/VERSION/text()" 15FEB02013019-M2AS-057363650020_01_P001.XML

GPX file (GPS track log)

In case following file named activity_9413397928.gpx:

<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="Garmin Connect" version="1.1"
  xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/11.xsd"
  xmlns:ns3="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
  xmlns="http://www.topografix.com/GPX/1/1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
  <metadata>
    <link href="connect.garmin.com">
      <text>Garmin Connect</text>
    </link>
    <time>2022-08-16T05:03:57.000Z</time>
  </metadata>
  <trk>
   <name>つくば市 バイク</name>
   <type>cycling</type>
   <trkseg>
     <trkpt lat="36.08374455012381076812744140625" lon="140.1167897880077362060546875">
       <ele>27.799999237060546875</ele>
       <time>2022-08-16T05:03:57.000Z</time>
       <extensions>
...

You can read time by:

$ xmllint --xpath "//*[local-name()='metadata']/*[local-name()='time']/text()" activity_9413397928.gpx
2022-08-16T05:03:57.000Z

You can read name by:

$ xmllint --xpath "//*[local-name()='trk']/*[local-name()='name']/text()" activity_9413397928.gpx
つくば市 バイク

You can get many "time" data by:

$ xmllint --xpath "///*[local-name()='time']/text()" activity_9413397928.gpx | head
2022-08-16T05:03:57.000Z
2022-08-16T05:03:57.000Z
2022-08-16T05:03:58.000Z
2022-08-16T05:04:03.000Z
...

reference: https://stackoverflow.com/questions/70756775/xmllint-returns-xpath-set-is-empty

Last modified:2022/09/03 01:52:58
Keyword(s):
References: