我正在尝试在两个地方(通过道路)之间取得距离,我知道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方法时,您才能为您想要的任何标签使用标签内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top