Как запросить службу XML с использованием YQL? - PullRequest
1 голос
/ 19 октября 2011

Я использую консоль YQL , чтобы поэкспериментировать с запросом веб-службы REST XML.

Я нашел простую государственную службу для игры.

http://www.thomas -bayer.com / sqlrest / КЛИЕНТ / -151612345 /

1012 * возвращается *

<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 Ответ

0 голосов
/ 23 октября 2011

Правильный ключ для фильтрации результатов по вашему желанию - не 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.

...