YQL返回在其XML输出中检索的记录数:
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
yahoo:count="2" yahoo:created="2012-08-24T14:02:32Z" yahoo:lang="en-US">
<diagnostics>
但我一直在尝试使用我自己的自定义Open Data Tables,至少使用包含JavaScript的execute
块来创建响应,并且无论我如何创建响应{{1当我使用表格进行查询时,} field总是设置为count
。
我也在文档中挖掘过,似乎无法找到解决此问题的任何内容。
这是设计的吗?这是一个错误吗?我错过了一些明显的东西吗?
答案 0 :(得分:1)
这通常是由仅返回一个结果引起的,这不应该让人感到意外。根据我自己的经验,最常见的原因是忘记为itemPath
指定合适的<select>
。
采用以下示例,了解response.object
结构和itemPath
如何组合以提供查询结果。
itemPath
<select itemPath="" produces="XML">
<execute>
<![CDATA[
response.object = <letters>
<letter>A</letter>
<letter>B</letter>
<letter>C</letter>
</letters>
]]>
</execute>
</select>
生成类似于以下内容的查询结果:
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
yahoo:count="1" yahoo:created="…" yahoo:lang="en-US">
<results>
<letters>
<letter>A</letter>
<letter>B</letter>
<letter>C</letter>
</letters>
</results>
</query>
itemPath="letters"
<select itemPath="letters" produces="XML">
…
</select>
生成与先前结果相同的查询结果。
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
yahoo:count="1" yahoo:created="…" yahoo:lang="en-US">
<results>
<letters>
<letter>A</letter>
<letter>B</letter>
<letter>C</letter>
</letters>
</results>
</query>
itemPath="letters.letter"
<select itemPath="letters.letter" produces="XML">
…
</select>
请注意,现在,路径现在指定了letter
项的集合。这会产生类似于以下内容的查询结果:
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
yahoo:count="3" yahoo:created="…" yahoo:lang="en-US">
<results>
<letter>A</letter>
<letter>B</letter>
<letter>C</letter>
</results>
</query>