这通常是由于只返回一个 result 引起的,这并不奇怪。根据我自己的经验,最常见的原因是忘记指定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>