正则表达式与iframe在雅虎!管道



我正在打造一个雅虎!管道从Reddit获取一个RSS提要,链接到描述中的一些内容。我使用正则表达式来匹配item.description字段中锚链接的href属性。我使用的正则表达式是:

^.+?href="([^"]+)">[link].+?$

作为测试,我将替换设置为简单的:

$1

,我看到整个描述字段都被URL替换了。到目前为止,一切顺利。

然后在替换字段中放入以下内容。这个想法是为链接到:

的内容设置iframe。

Content: <iframe src="$1">no iframe support</iframe> End

我得到的结果是:

Content: no iframe support End

我已经确认这也出现在管道的输出中,而不仅仅是在Yahoo!管道调试控制台。

到目前为止,我已经尝试用&lt;&gt;实体替换我的尖括号。我试过把整个东西包装在一个<![CDATA[ ... ]]>块,仍然,我什么也得不到。如果我通过删除尖括号来破坏iframe标记,那么破坏的内容就可以正常显示,但是如果我有一个格式良好的iframe元素,它就会消失,留下"no iframe support"文本。是我做错了什么,还是雅虎!主动阻止我在生成的管道中使用iframe标签?在谷歌上粗略地搜索一下,没有找到任何与此相关的内容。

所讨论的管道在这里:

http://pipes.yahoo.com/pipes/pipe.info?_id=2ba41448cadd2347d86f377efd3d199f

This Pipes常见问题"为什么管道会剥离和& lt; embed>标签……显示了为了RSS使用者的安全,通过将内容(至少某些内容)放置到iframe中执行了一定数量的清理—尽管它没有具体说明,但这可能还会删除其他iframe,以避免嵌套和其他解决方法。

雅虎足够大,我怀疑他们是否有一个星期的消毒程序,但一个极其渺茫的机会是,你可能能够通过在一堆其他标签中嵌套iframe来欺骗它(我再次怀疑这将起作用)。还取决于哪一步进行了清理,也许在一步中添加一部分标签,然后在其他地方添加另一部分可能会起作用(再次,怀疑淹没了我)

不确定还有什么建议,除了得到一些其他的东西来消费和转换你的RSS多一点(通过修复其他损坏的标签??)-但这就是你开始使用管道的原因,不是吗?Idunno……

祝你好运!

Pipes对RSS规范非常热衷,规范规定描述字段只能是纯文本。HTML等应该放在content:encoded字段中,并不是说我很幸运能让管道做到这一点。

相关内容

  • 没有找到相关文章

最新更新