我正在使用boss.search
表提取XML中的数据,但我想检索特定字段。
标准语法为:
SELECT * from boss.search WHERE q="stackoverflow" AND ck = 'ConsumerKey' AND secret = 'ConsumerSecret';
哪个有效。
但是,当我尝试选择诸如"/title"
或的字段时"/results/result/title"
,出现语法错误:
查询语法错误[第1行:7,期望fields_or_star获得'/ result / title']
检索字段(例如title
)的正确语法是什么?
REST响应如下所示:
<results>
<bossresponse>
<web>
<results>
<result>
<date/>
<clickurl>https://example.com/</clickurl>
<url>https://example.com/</url>
<dispurl type="default">https://example.com/</dispurl>
<title type="default">Example</title>
<abstract type="default">Example</abstract>
</result>
<result>
您可以在“ SELECT的语法-指定返回的元素”(缓存的)Yahoo Query Language文档中进行检查。
如果结果集中的字段包含子字段,则可以使用句点(点)作为分隔符来指示子字段。
定制表
例如,对于social.profile
表,从以下示例中仅获取imageUrl
字段的子字段image
:
. . .
<results>
<profile xmlns="http://social.yahooapis.com/v1/schema.rng">
<image>
<imageUrl>http://l.yimg.com/us.yimg.com/i/identity/nopic_192.gif</imageUrl>
</image>
</profile>
</results>
输入以下内容:
select image.imageUrl from social.profile where guid=me
BOSS API
在BOSS响应中,有所不同。要从boss.search表中获取标题,您需要将该字段命名为:web.results.result.title
,例如
SELECT web.results.result.title FROM boss.search WHERE q="stackoverflow"
的HTML
要仅从HTML页面获取内容,可以content
在单词后指定关键字SELECT
。带有content
关键字的语句按以下顺序处理HTML:
content
在找到的元素内命名的任何元素。content
找不到名为的元素,则该语句将查找名为的属性content
。content
找不到元素或命名为attribute的属性,则该语句返回该元素的textContent
。例如,以下语句仅提取Yahoo Groups的HTML链接(href
标记):
SELECT href FROM html WHERE url="http://groups.yahoo.com/search?query=surfing&sort=relevance" and compat="html5" AND xpath='//li[contains(@class,"hbox groupsSearch-result-entry")]/h4/a'
例如,以下语句返回a
由XPath表达式检索的每个锚标记的textContent :
SELECT content FROM html WHERE url="http://groups.yahoo.com/search?query=surfing&sort=relevance" AND compat="html5" AND xpath='//li[contains(@class,"hbox groupsSearch-result-entry")]/h4/a'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句