Обработка ответа Яндекс Геокодер — различия между версиями
Davidov (обсуждение | вклад) (Новая страница: «Для извлечения данных полученных от геокодера Яндекс необходимо добавить соответствующи…») |
Davidov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | Для извлечения данных полученных от геокодера Яндекс необходимо добавить соответствующие пространства имён, которые можно увидеть на странице [http://api.yandex.ru/maps/doc/geocoder/desc/reference/geocoder_namespaces.xml] также, необходимо добавить пространство имён "x". Всё это необходимо, так как в ответе мы получим все ноды в XML c пространствами имён, и несмотря на то, что через select="." мы получаем XML без них, для того чтобы добраться до нужной ноды в xpath | + | Для извлечения данных полученных от геокодера Яндекс необходимо добавить соответствующие пространства имён, которые можно увидеть на странице [http://api.yandex.ru/maps/doc/geocoder/desc/reference/geocoder_namespaces.xml] |
+ | также, необходимо добавить пространство имён "x".<br />Всё это необходимо, так как в ответе мы получим все ноды в XML c пространствами имён, и несмотря на то, что через select="." мы получаем XML без них, для того чтобы добраться до нужной ноды в xpath эти пространства имён следует учесть. Убедиться в этом можно используя плагин для firefox firepath.<br /> | ||
При включенном firepath откроем тестовый запрос к геокодеру | При включенном firepath откроем тестовый запрос к геокодеру | ||
[http://geocode-maps.yandex.ru/1.x/?geocode=moskva] | [http://geocode-maps.yandex.ru/1.x/?geocode=moskva] | ||
на открывшейся странице мы видим чистую XML, но firepath нам покажет что все ноды имеют пространство имён. | на открывшейся странице мы видим чистую XML, но firepath нам покажет что все ноды имеют пространство имён. | ||
Соответственно, чтобы добараться до нужного значения мы можем воспользоваться firepath, например, чтобы получить ноду pos, xpath будет выглядеть так: | Соответственно, чтобы добараться до нужного значения мы можем воспользоваться firepath, например, чтобы получить ноду pos, xpath будет выглядеть так: | ||
− | "x:ymaps/x:GeoObjectCollection/gml:featureMember[1]/x:GeoObject/gml:Point/gml:pos" | + | "x:ymaps/x:GeoObjectCollection/gml:featureMember[1]/x:GeoObject/gml:Point/gml:pos"<br /> |
− | + | Таким образом, используя пространства имён мы можем получить необходимые значения из ответа геокодера Яндекс. | |
[[Категория:Верстка в XSLT]] | [[Категория:Верстка в XSLT]] |
Версия 11:48, 3 января 2013
Для извлечения данных полученных от геокодера Яндекс необходимо добавить соответствующие пространства имён, которые можно увидеть на странице [1]
также, необходимо добавить пространство имён "x".
Всё это необходимо, так как в ответе мы получим все ноды в XML c пространствами имён, и несмотря на то, что через select="." мы получаем XML без них, для того чтобы добраться до нужной ноды в xpath эти пространства имён следует учесть. Убедиться в этом можно используя плагин для firefox firepath.
При включенном firepath откроем тестовый запрос к геокодеру
[2]
на открывшейся странице мы видим чистую XML, но firepath нам покажет что все ноды имеют пространство имён.
Соответственно, чтобы добараться до нужного значения мы можем воспользоваться firepath, например, чтобы получить ноду pos, xpath будет выглядеть так:
"x:ymaps/x:GeoObjectCollection/gml:featureMember[1]/x:GeoObject/gml:Point/gml:pos"
Таким образом, используя пространства имён мы можем получить необходимые значения из ответа геокодера Яндекс.