3

我正在尝试获取两个地方之间的距离(通过道路),并且我知道 http 请求将返回带有以下数据的 XML

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

但我不知道如何使用 NSXMLParser 来获得总距离。我会假设使用

parser:didStartElement:namespaceURI:qualifiedName:attributes

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

4

2 回答 2

0

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

于 2010-09-27T18:28:18.297 回答
0

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

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

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

于 2010-09-27T19:00:24.350 回答