我正试图获得两个地方之间的距离(通过道路),我得到一个http请求将返回带有以下数据的XML
http://code.google.com/apis/maps/documentation/directions/#XML
但是我没有得到如何使用NSXMLParser来获得总距离。我会假设使用
parser:didStartElement:namespaceURI:qualifiedName:attributes
方法但不确定这是如何工作的。我想要的元素是“方向”,但有一些像这样的元素。如何指定我想要的?它与“attributes”参数有关吗?
答案 0 :(得分:0)
你使用didStartElement来查找你需要的元素,而不是你应该使用foundCharacters方法来收集标签的内容(它可以被称为多个),所以只有当调用了didEndElement方法时,你可以使用标签的内容来做任何你想要的事情。
答案 1 :(得分:0)
NSXMLParser
是一个SAX解析器,这意味着您必须在处理文档时为各种解析事件提供回调方法。您链接到的Google文档让我觉得这些文档不是很大,所以我个人不会使用SAX解析器。
DOM解析器(例如NSXMLDocument
)更容易使用,但遗憾的是Apple在iOS SDK中没有包含NSXMLDocument
。有几种选择,包括TouchXML。
如果您只关心总距离,而不是每条腿或步距的距离,那么简单的XPath查询将为您获得所有距离://leg/step/distance/value
。循环遍历它们并总结它们。