在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是此上下文中唯一受支持的标识符
如何传递此值?
答案 0 :(得分:5)
您需要创建一个单独的管道,将项目URL作为用户输入,将其传递给字符串构建器,该构建器将实际URL值替换为YQL查询字符串,并将其作为输入传递给YQL窗口小部件。然后在主管道中,将item.link
值作为输入传递到子管道。
具体做法是:
创建用户输入 - &gt; URL输入项。你可以给它任何名字和提示。为测试设置“Debug”值很有帮助。
创建一个包含3个字段的字符串构建器。在第一个字段中,将字符串放到值应替换的位置。在问题的示例中,select * from html.tostring where url='
。在第二个字段中,将URL输入元素的输出连接到此处。在第三个字段中,添加输出的其余部分:' and xpath='//div[@id="foo"]'
。构建字符串时,它将是一个完整的YQL查询字符串,其中提供的URL被替换为。
创建一个YQL元素,并将字符串构建器的输出连接到查询字段。
将YQL元素输出连接到Pipe Output元素。
保存新管道。
在主管道中,创建新管道的元素(My Pipes - &gt;无论你命名为什么)。通常,您将它拖动到Loop元素中。将输入设置为item.link
,您将获得正确的输出。