#xml #web-services #rest #yql
#xml #веб-сервисы #rest #yql
Вопрос:
Я использую консоль YQL для экспериментов с запросом веб-службы REST XML.
Я нашел простую общедоступную службу для игры.
http://www.thomas-bayer.com/sqlrest/CUSTOMER/-151612345/
ВОЗВРАТ
<CUSTOMER xmlns:xlink="http://www.w3.org/1999/xlink">
<ID>-151612345</ID>
<FIRSTNAME>Deepthi</FIRSTNAME>
<LASTNAME>Deep</LASTNAME>
<STREET>440 - 20th Ave.</STREET>
<CITY>Los Angeles</CITY>
</CUSTOMER>
Если я использую запрос:
select *
from xml
where url='http://www.thomas-bayer.com/sqlrest/CUSTOMER/-151612345/'
Я получаю этот возвращенный XML. Однако, если я попытаюсь ограничить доступ к данным одним элементом, например:
select *
from xml
where url='http://www.thomas-bayer.com/sqlrest/CUSTOMER/-151612345/'
and xpath='//LASTNAME'
результаты не возвращаются.
Что я делаю не так?
Нажмите здесь, чтобы отобразить консоль YQL с загруженным запросом.
Ответ №1:
Правильный ключ для фильтрации результатов, как вы хотите, нет xpath
, вместо этого он есть itemPath
.
SELECT *
FROM xml
WHERE url='http://www.thomas-bayer.com/sqlrest/CUSTOMER/-151612345/'
AND itemPath='//LASTNAME'
(Попробуйте выполнить этот запрос в консоли YQL)
Вы можете увидеть ключи для данной таблицы, выполнив запрос desc <tablename>
.
desc xml
(Попробуйте выполнить этот запрос в консоли YQL)
В случае xml
таблицы itemPath
это может быть либо выражение XPath, либо путь с точкой E4X.