想要在Yahoo Pipes YQL元素中执行的一件常见事情是将Pipes值传递给YQL查询.例如:
select * from html.tostring where url='<someurl>' and xpath='//div[@id="foo"]'
Run Code Online (Sandbox Code Playgroud)
并且你想传递一个动态值<someurl>.假设它是一个RSS提要项的URL item.link.尝试简单地替换引用someurl的内容item.link会给出以下错误:
标识符item.link无效.me是此上下文中唯一受支持的标识符
我怎样才能传递这个值?
你需要创建一个单独的管道将采取项目URL作为用户输入,它传递到一个字符串生成器,其substitues实际的URL值到YQL查询字符串,并传递作为输入YQL部件.然后在item.link主管道中,将值作为输入传递给子管道.
特别:
创建用户输入 - > URL输入项.你可以给它任何名字和提示.为测试设置"Debug"值很有帮助.
使用3个字段创建"字符串"构建器.在第一个字段中,将字符串放到值应替换的位置.在问题的例子中,select * from html.tostring where url='.在第二个字段中,将URL输入元素的输出连接到此处.在第三个字段中,添加输出的其余部分:' and xpath='//div[@id="foo"]'.构建字符串时,它将是一个完整的YQL查询字符串,其中提供的URL被替换.
创建YQL元素,并将字符串生成器的输出连接到查询字段.
将YQL元素输出连接到Pipe Output元素.
保存新管道.
在主管道中,创建新管道的元素(我的管道 - >无论你命名为什么).通常,您将它拖动到Loop元素中.将输入设置为item.link,您将获得正确的输出.