如何使用YQL查询XML服务?

时间:2011-10-19 09:17:53

标签: xml web-services rest yql

我正在使用YQL Console来试验查询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'

没有返回任何结果。

我做错了什么?

Click here to display the YQL console with the query loaded.

1 个答案:

答案 0 :(得分:0)

根据需要过滤结果的正确密钥不是xpath,而是itemPath

SELECT *
FROM xml
WHERE url='http://www.thomas-bayer.com/sqlrest/CUSTOMER/-151612345/'
  AND itemPath='//LASTNAME'

Try this query in the YQL console)功能

您可以通过发出查询desc <tablename>来查看给定表的键。

desc xml

Try this query in the YQL console)功能

对于xml表,itemPath可以是XPath表达式或E4X虚线路径。