Как анализировать данные расстояния с iPhone из Google Rightions API?
-
05-10-2019 - |
Вопрос
Я пытаюсь получить расстояние между двумя местами (посредством дорог), и я получаю, что HTTP-запрос вернет XML со следующими данными
http://code.google.com/apis/maps/documentation/Directions/#xml.
Но я не понимаю, как использовать NSXMLParser, чтобы получить общее расстояние. Я бы предположил использовать
parser:didStartElement:namespaceURI:qualifiedName:attributes
Метод, но не уверен, как это работает. Элемент, который я хотел бы, я думаю, это «направления», но есть пара параметров такого. Как мне указать, какой я хочу? Это связано с параметром «Атрибуты»?
Решение
NSXMLParser
это Sax Parser, и это означает, что вы должны предоставить методы обратного вызова для различных событий разбора, пока документ обрабатывается. Документация Google вы ссылаетесь, заставляет меня думать, что эти документы не имеют ужасных больших, и поэтому я бы лично не использовал Sax Parser.
Паршник дома, такой как NSXMLDocument
гораздо проще использовать, но, к сожалению, Apple не включил NSXMLDocument
в iOS SDK. Есть несколько альтернатив, в том числе TouchXml..
Если вы заботитесь только об общем расстоянии, а не расстояние каждой ноги или шага, то простой XPath Query получит все расстояния для вас: //leg/step/distance/value
. Отказ Петлю через них и суммируйте их.
Другие советы
Вы используете DIDSTARTELEMED, чтобы найти нужную вам элемент, чем вы должны использовать метод на основе насаждения для сбора содержимого тега (его можно назвать более одного), поэтому только когда метод DiDendelement вы можете использовать содержимое тега для того, что вы хотите.