解析错误异常
我解析气象数据馈送,并将其与某些位置,但出现了错误此消息对一些地方的工作原理:解析错误异常
十月9日至22日:40:33.364:WARN/System.err的( 3347):org.apache.harmony.xml.ExpatParser $ ParseException:在第465行,第29列:格式不正确(无效令牌)
任何想法可能发生什么?
这里是XML的一个片段:
<hour time="11 AM">
<url>http://www.....</url>
<obsdate>9/22/2010</obsdate>
<txtshort>Parcialmente soleado</txtshort>
<weathericon>03</weathericon>
<temperature>26</temperature>
<feelslike>29</feelslike>
</hour>
<hour time="12 PM">
<url>http://www.....</url>
<obsdate>9/22/2010</obsdate>
<txtshort>Parcialmente soleado</txtshort>
<weathericon>03</weathericon>
<temperature>26</temperature>
<feelslike>29</feelslike>
</hour>
线465与12点属性值的“小时”标签。我已经记录了解析代码,它正在读取xml,直到它到达这一行。
这实际上是解析XML文档时无法识别的字符。我做了什么来解决,这是包括编码类型是这样的:(选择符合您的XML文档的编码)
InputSource inputSource = new InputSource(is);
//inputSource.setEncoding("iso-8859-1");
inputSource.setEncoding("utf-8");
在尝试读取任何xml文件之前,总是建议检查您尝试读取的xml文档的格式正确。在这种情况下,请尝试在解析天气数据馈送时从xml Feed中获取格式良好的条件。使用C#.Net可以这样做,如下所示: -
XmlDocument doc = new XmlDocument();
doc.loadxml(rawXMLcontent);
如果失败它将转到异常块。您可以相应地在异常块中处理Feed。这保证你永远不会得到任何解析异常。我希望它有帮助。
我认为如果仔细查看错误,您会发现它正在被XML解析器抛出 - 简言之,OP已经在执行完全符合您的建议的格式良好检查。 – 2010-09-23 16:55:53
@Robert是的,我确实发现错误与属性值有关,它很容易绕过格式良好的条件。 – 2010-09-23 17:07:57
轻松绕过?错误消息*表示文档格式不正确。 – 2010-09-23 17:20:11
如何发布您的实际解析代码和原始XML的一个片段,真实失败? – ctacke 2010-09-22 14:52:14
我不相信它是我的代码,它适用于某些订阅源,而不是来自相同来源的其他位置的其他订阅者。 – taraloca 2010-09-22 15:04:32
@taraloca:这是公共天气服务吗?我们可以看看你得到的原始文件吗? – Bobby 2010-09-22 15:46:08