Обработка ответа Яндекс Геокодер — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Для извлечения данных полученных от геокодера Яндекс необходимо добавить соответствующи…»)
 
Строка 1: Строка 1:
Для извлечения данных полученных от геокодера Яндекс необходимо добавить соответствующие пространства имён, которые можно увидеть на странице [http://api.yandex.ru/maps/doc/geocoder/desc/reference/geocoder_namespaces.xml] также, необходимо добавить пространство имён "x". Всё это необходимо, так как в ответе мы получим все ноды в XML c пространствами имён, и несмотря на то, что через select="." мы получаем XML без них, для того чтобы добраться до нужной ноды в xpath 'nb пространства имён следует учесть. Убедиться в этом можно используя плагин для firefox firepath.
+
Для извлечения данных полученных от геокодера Яндекс необходимо добавить соответствующие пространства имён, которые можно увидеть на странице [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"
Таким образом, используя пространства имён мы можем получить необходимые значения из ответа геокодера Яндекс.