【问题标题】:(Java) Error parsing google directions XML using XPath(Java) 使用 XPath 解析 google 方向 XML 时出错
【发布时间】:2015-01-14 13:18:53
【问题描述】:

我正在尝试使用 google 路线 api 获取两个位置之间的行车路线。

我尝试解析使用不同方法返回的 XML,但总是收到以下错误。

javax.xml.xpath.XPathExpressionException: org.xml.sax.SAXParseException;行号:1;列号:1;序言中不允许有内容。

//代码编辑

【问题讨论】:

  • 或许XML声明前面有字符?请出示您的代码和 XML 文档。
  • 感谢您的回复,我已将代码添加到问题中。
  • 您有没有想过您正在尝试像解析 XML 一样解析 JSON? This is the page that is fetched - 这绝对不是 XML,XPath 不能用来导航它。
  • xml替换http://maps.googleapis.com/maps/api/directions/json中的json,它应该返回XML。
  • 天哪,我根本没有注意到。 URL 是我的导师提供的,他告诉我使用 XML 解析,所以我没有想检查它。谢谢你。用 XML 替换 JSON 消除了错误,谢谢。

标签: java xml xpath google-directions-api


【解决方案1】:

既然我们已经确定这确实是唯一的问题,我将其添加为答案。

您请求的页面不是 XML,而是 JSON。 SAX 解析器返回错误,因为解析器输入不是格式良好的 XML 文档。它不是必须的,因为它是有效的 JSON。

按照@geert3 的建议,只需将网址中的json 替换为xml

http://maps.googleapis.com/maps/api/directions/xml?sensor=false&origin=nottingham&destination=derby

否则,parse JSON with a JSON parser 并使用 JSONPath 而不是 XPath 来查询它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-07
    • 2012-07-02
    • 2013-02-20
    • 2014-05-10
    • 2013-11-25
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多