gpt4 book ai didi

java - XmlPullParser 正在跳过 START_TAG?

转载 作者:行者123 更新时间:2023-12-02 01:44:31 25 4
gpt4 key购买 nike

所以我尝试使用 XmlPullParser 解析 GPX 文件。在大多数情况下,我可以正常工作,但注意到我没有得到我所期望的结果。文件 fragment :

<?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 事件标签。那么我的下一个事件将是文本事件,文本将包含 \n 。之后的事件将是 START_TAG,但对于 <groundspeak:cache>并且不是<extensions>标签。

我似乎因为使用nextToken()而得到了这个和next()来电。这是预期的吗?

编辑添加:我在 XmlPullParser 代码中设置的唯一设置是:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);

最佳答案

检查您的 xml 文件。某些 xml 文件在开始时包含一些额外字节,具体为“EF BB BF”。它称为 BOM(字节顺序标记)。当 xml 包含此额外字节时,我们的 XmlPullParser 无法正常工作,并且表现得就像没有 START_TAG 事件一样,会转到 END_DOCUMENT。

关于java - XmlPullParser 正在跳过 START_TAG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57469969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com