Я использую консоль 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 с загруженным запросом.
Правильный ключ для фильтрации результатов по вашему желанию - не xpath, а itemPath.
xpath
itemPath
SELECT * FROM xml WHERE url='http://www.thomas-bayer.com/sqlrest/CUSTOMER/-151612345/' AND itemPath='//LASTNAME'
( Попробуйте этот запрос в консоли YQL )
Вы можете увидеть ключи для данной таблицы, выполнив запрос desc <tablename>.
desc <tablename>
desc xml
В случае таблицы xml, itemPath может быть выражением XPath или точечным путем E4X.
xml