如何将Yahoo Pipes项目传递到YQL查询?

时间:2010-05-22 19:05:56

标签: yahoo-pipes yql

在Yahoo Pipes YQL元素中要做的一件事是将Pipes值传递给YQL查询。例如:

select * from html.tostring where url='<someurl>' and xpath='//div[@id="foo"]'

并且您希望传递<someurl>的动态值。假设它是一个名为item.link的RSS提要项的URL。尝试简单地将引用的someurl替换为item.link会出现此错误:

  

无效的标识符item.link。 me是此上下文中唯一受支持的标识符

如何传递此值?

1 个答案:

答案 0 :(得分:5)

您需要创建一个单独的管道,将项目URL作为用户输入,将其传递给字符串构建器,该构建器将实际URL值替换为YQL查询字符串,并将其作为输入传递给YQL窗口小部件。然后在主管道中,将item.link值作为输入传递到子管道。

具体做法是:

  1. 创建用户输入 - &gt; URL输入项。你可以给它任何名字和提示。为测试设置“Debug”值很有帮助。

  2. 创建一个包含3个字段的字符串构建器。在第一个字段中,将字符串放到值应替换的位置。在问题的示例中,select * from html.tostring where url='。在第二个字段中,将URL输入元素的输出连接到此处。在第三个字段中,添加输出的其余部分:' and xpath='//div[@id="foo"]'。构建字符串时,它将是一个完整的YQL查询字符串,其中提供的URL被替换为。

  3. 创建一个YQL元素,并将字符串构建器的输出连接到查询字段。

  4. 将YQL元素输出连接到Pipe Output元素。

  5. 保存新管道。

    在主管道中,创建新管道的元素(My Pipes - &gt;无论你命名为什么)。通常,您将它拖动到Loop元素中。将输入设置为item.link,您将获得正确的输出。