0

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を実験してきました。これは、少なくともexecuteJavaScript を含むブロックを使用して応答を作成するものであり、どのように応答を作成しても、テーブルを使用してクエリを作成すると、countフィールドは常に設定されます。 1.

また、ドキュメントを調べてみましたが、これに対処するものは何も見つからないようです。

これは設計によるものですか?バグですか?明らかな何かを見逃しましたか?

4

1 に答える 1

1

これは通常、結果が 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>
于 2012-08-27T22:49:33.963 に答える