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

发布于 2024-09-02 08:33:27 字数 429 浏览 5 评论 0原文

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

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

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

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

我如何传入此值?

One common thing to want to do in the Yahoo Pipes YQL element is pass in a Pipes value to the YQL query. For example:

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

and you want to pass in a dynamic value for <someurl>. Let's say that it's an RSS feed item's URL called item.link. Attempting to simply replace the quoted someurl with item.link gives you this error:

Invalid identifier item.link. me is the only supported identifier in this context

How can I pass this value in?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奶气 2024-09-09 08:33:27

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

具体来说:

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

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

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

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

保存您的新管道。

在主管道中,创建新管道的一个元素(我的管道 -> 无论您命名它)。通常,您会将其拖动到循环元素中。将输入设置为 item.link,您将获得正确的输出。

You'll need to create a separate Pipe that takes the item URL as user input, passes it into a string builder which substitues the actual URL value into the YQL query string, and pass that as input to the YQL widget. Then in your main pipe, pass the item.link value as the input to your subpipe.

Specifically:

  1. Create a User inputs -> URL Input item. You can give it any name and prompt. It's helpful to set the "Debug" value for testing.

  2. Create a String builder, with 3 fields. In the first field, put the string up to where the value should be substituted. In the example in the question, select * from html.tostring where url='. In the second field, connect the output from the URL input element to here. In the third field, add the rest of the output: ' and xpath='//div[@id="foo"]'. When the string is built, it will be a complete YQL query string, with the provided URL substituted in.

  3. Create a YQL element, and connect the output from the string builder to the query field.

  4. Connect the YQL elements output to the Pipe Output element.

Save your new pipe.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文