我正在建立一个Yahoo!管道从Reddit中提取RSS源,链接到描述中的某些内容。我正在使用正则表达式来匹配item.description
字段中锚链接的href属性。我正在使用的正则表达式是:
^.+?href="([^"]+)">\[link\].+?$
作为测试,我将替换设置为:
$1
我发现整个描述字段已被URL替换。到目前为止,非常好。
然后我将以下内容放在替换字段中。想法是iframe链接到的内容:
Content: <iframe src="$1">no iframe support</iframe> End
然而我得到的是:
Content: no iframe support End
我已经确认这也是管道输出中的结果,而不仅仅是雅虎!管道调试控制台。
我到目前为止尝试用<
和>
实体替换我的尖括号。我已经尝试将整个事情包裹在<![CDATA[ ... ]]>
区块中,但我仍然没有得到任何结果。如果我通过删除尖括号来破坏我的iframe标记,则破坏的内容会很好,但是如果我有一个格式正确的iframe元素,它会消失,留下“无iframe支持”文本。我在这里做错了什么,或者是Yahoo! 主动阻止我在生成的管道中使用iframe代码?对谷歌进行粗略搜索并未发现与此相关的任何内容。
有问题的管道在这里:
http://pipes.yahoo.com/pipes/pipe.info?_id=2ba41448cadd2347d86f377efd3d199f
答案 0 :(得分:1)
This Pipes FAQ Question“为什么Pipes Strip&lt; object&gt;和&lt; embed&gt;标签......?”通过将内容(至少某些内容)放入iframe以确保RSS使用者的安全,显示已执行了一定量的清理 - 尽管它没有具体说明,但这可能也会删除其他iframe为了避免嵌套和其他解决方法。
雅虎足够大我会怀疑他们有一周消毒剂,但是一个非常长的镜头是你可以通过将iframe嵌套在一堆其他标签中来欺骗它(我再次怀疑这会起作用)。还取决于清理的步骤,也许在一个步骤中添加标签的一部分,然后在其他地方添加另一个部分可能会起作用(再次,怀疑压倒我)
不知道还有什么建议,除了得到其他东西消费和转换你的RSS一点点(通过修复其他破坏的标签?) - 但这就是你开始使用管道,isn'是吗? Idunno ......
祝你好运!答案 1 :(得分:0)
Pipes热衷于RSS规范,规范说描述字段只是纯文本。 HTML等应该放在内容中:编码字段,而不是我有幸运行管道来做到这一点。