2

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

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

并且您想为<someurl>. 假设它是一个名为 的 RSS 提要项的 URL item.link。尝试简单地将引用替换someurlitem.link您会出现以下错误:

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

我怎样才能传递这个值?

4

1 回答 1

5

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

具体来说:

  1. 创建一个用户输入-> URL 输入项。您可以给它任何名称和提示。设置“调试”值以进行测试很有帮助。

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

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

  4. 将 YQL 元素输出连接到管道输出元素。

保存您的新管道。

In your main pipe, create an element of your new pipe (My Pipes -> whatever-you-named-it). Typically you'll be dragging it into a Loop element. Set the input to be item.link and you'll get the proper output.

于 2010-05-22T19:17:51.627 回答