如何使用iPhone从Google Directions API解析距离数据?
-
05-10-2019 - |
题
我正在尝试在两个地方(通过道路)之间取得距离,我知道HTTP请求将返回带有以下数据的XML
http://code.google.com/apis/maps/documentation/directions/#xml
但是我没有如何使用NSXMLPARSER来获得总距离。我假设使用
parser:didStartElement:namespaceURI:qualifiedName:attributes
方法,但不确定这是如何工作的。我想我想要的元素是“方向”,但是有几个元素。我如何指定我想要的?它与“属性”参数有关吗?
解决方案
NSXMLParser
是SAX解析器,这意味着您必须在处理文档时为各种解析事件提供回调方法。您链接到的Google文档使我认为这些文档并不大,因此我个人不会使用SAX解析器。
DOM解析器,例如 NSXMLDocument
使用得很容易,但不幸的是苹果没有包含 NSXMLDocument
在iOS SDK中。有几种选择,包括 touchxml.
如果您只关心总距离,而不在每个腿或步骤的距离,那么简单的XPath查询将为您提供所有距离: //leg/step/distance/value
. 。通过它们循环并总结它们。
其他提示
您使用didStartEllement来查找所需的元素,而不是要使用符合的Characters方法来收集标签的内容(它可以称为更多),因此,只有当称为DidendEllement方法时,您才能为您想要的任何标签使用标签内容。
不隶属于 StackOverflow