【发布时间】:2018-12-28 05:01:29
【问题描述】:
我在 Linux 下使用 bash 进行编码。我正在尝试提取 gpx 文件系列中每个轨道的 轨道名称 和 第一个时间戳。
我尝试使用以下命令(和其他变体)使用 xmllint 解析 gpx 文件:
xmllint --xpath "//gpx/trk/name/text()" test.gpx
xmllint --xpath "//gpx/trk/trkseg[1]/time/text()" test.gpx
失败并返回消息:XPath set is empty
这里是一个文件test.gpx
的例子<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<gpx creator="www.flyisfun.com" version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk>
<name>Track_n1</name>
<trkseg>
<trkpt lat="-48.843895" lon="10.9835696">
<ele>126.75549</ele>
<time>2016-04-16T11:05:00Z</time>
</trkpt>
<trkpt lat="-48.843254" lon="11.9823042">
<ele>126.90486</ele>
<time>2016-04-16T11:05:05Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
我期待得到这个测试用例
Track_n1
2016-04-16T11:05:00Z
我想知道为什么带有 xmllint 的命令不起作用,以及是否可以在不更改原始 gpx 文件的情况下调整它们以使其正常工作。
感谢您的帮助。
【问题讨论】: