2010-05-22 40 views
2

希望在Yahoo Pipes YQL元素中執行的常見操作是將Pipes值傳遞給YQL查詢。例如:如何將Yahoo Pipes項目傳遞給YQL查詢?

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

並且您想要傳入動態值<someurl>。假設這是一個名爲item.link的RSS提要項目的URL。試圖只需更換引述someurlitem.link爲您提供了這樣的錯誤:

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

如何傳遞這個價值?

回答

5

您需要創建一個單獨的Pipe,將項目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元素輸出連接到管道輸出元素。

保存您的新管道。

在你的主管道中,創建新管道的一個元素(我的管道 - >任何你命名的它)。通常你會將它拖拽到Loop元素中。將輸入設置爲item.link,您將得到正確的輸出。