これは通常、結果が 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>