如何从谷歌方向api解析与iPhone的距离数据?

时间:2010-09-26 05:00:13

标签: iphone google-maps driving-directions directions

我正试图获得两个地方之间的距离(通过道路),我得到一个http请求将返回带有以下数据的XML

http://code.google.com/apis/maps/documentation/directions/#XML

但是我没有得到如何使用NSXMLParser来获得总距离。我会假设使用

parser:didStartElement:namespaceURI:qualifiedName:attributes

方法但不确定这是如何工作的。我想要的元素是“方向”,但有一些像这样的元素。如何指定我想要的?它与“attributes”参数有关吗?

2 个答案:

答案 0 :(得分:0)

你使用didStartElement来查找你需要的元素,而不是你应该使用foundCharacters方法来收集标签的内容(它可以被称为多个),所以只有当调用了didEndElement方法时,你可以使用标签的内容来做任何你想要的事情。

答案 1 :(得分:0)

NSXMLParser是一个SAX解析器,这意味着您必须在处理文档时为各种解析事件提供回调方法。您链接到的Google文档让我觉得这些文档不是很大,所以我个人不会使用SAX解析器。

DOM解析器(例如NSXMLDocument)更容易使用,但遗憾的是Apple在iOS SDK中没有包含NSXMLDocument。有几种选择,包括TouchXML

如果您只关心总距离,而不是每条腿或步距的距离,那么简单的XPath查询将为您获得所有距离://leg/step/distance/value。循环遍历它们并总结它们。