【发布时间】:2019-12-19 13:14:10
【问题描述】:
所以我正在尝试使用 XmlPullParser 解析 GPX 文件。 在大多数情况下,我让它工作,但注意到我没有得到我所期望的。 文件的sn-p:
<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1">
<wpt lat="34.767778" lon="-88.078889">
<name>EG1325</name>
<type>Waypoint</type>
<extensions>
<groundspeak:cache>
<groundspeak:country>United States</groundspeak:country>
</groundspeak:cache>
</extensions>
</wpt>
</gpx>
为了这个问题,我在这里修剪了不重要的标签,假设文件通过了所有命名空间的验证。 (因为完整的文件可以。)
当我越过<type> 标签时,问题就来了。
使用next() 或nextToken(),我将获得<type> 标签的END_TAG 事件。然后我的下一个事件将是 TEXT 事件,文本将包含 \n。之后的事件将是 START_TAG,但对于 <groundspeak:cache> 和 NOT 是 <extensions> 标签。
我似乎在使用nextToken() 和next() 调用时都明白这一点。这是预期的吗?
编辑添加:我在代码中为 XmlPullParser 设置的唯一设置是:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);
【问题讨论】:
标签: java android android-xmlpullparser