2013-08-21 32 views
0

我正在使用雅虎管道聚合各种RSS源(并进行一些简单的转换等)。但是,我的提要的XHTML内容被聚合过程剥离。这个问题似乎与我的管道代码无关,只是雅虎管道如何转换输入RSS的结果,我将它输入到RSS输出的输出中 - 尽管两者显然都是RSS,但它们是完全不同的XML文件。我怎样才能保持雅虎管道的RSS输出中的XHTML标记

因此,例如,当“输入” RSS看起来是这样的:

<?xml version="1.0" encoding="UTF-8"?> 
<feed>... 
    <entry> 
... 
    <title>...</title> 
<content type="xhtml"> 
HTML CONTENT HERE 
</content> 
    </entry> 
    ... 
</feed> 

输出看起来是这样的:

<rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"> 
    <channel> 
    <title></title> 
    <description></description> 
    <link> 
    </link> 
    ... 
    <item> 
     <title>...</title> 
     ... 
     <description> 
      NON HTML CONTENT HERE 
     </description> 
     ... 
    </item> 
    </channel> 
</rss> 

看来这个问题是对的内容<内容>我的输入中的标记正在转换为<说明>标记在雅虎rss输出中,并从我抬头看,<说明>标记没有t支持它内部的标记,所以它的内容是纯文本是有意义的。

我的问题是,我找不到任何有关雅虎为什么要进行此转换或如何避免它的文档。我没有什么可以在我的管道中找到,但另一方面,我找不到一种方法来访问管道输出的未转换版本。看起来我一定会错过一些东西,因为很明显,人们总是在RSS中使用嵌入式HTML,我无法想象它在所有管道中都被压扁了。

这里是链接到我拉在一个单一的饲料,再输出它与雅虎的管道最小测试用例:http://pipes.yahoo.com/pipes/pipe.info?_id=5302fba3cc2d02f7a87ffdded87ce627

谁能告诉我如何修改上面的测试管,使其吐用html包含内容?或者,任何人都可以解释/为什么这是不可能的?

回答

0

AFAIK您无法获取原始Feed输出为XML - Yahoo!像你注意到的那样,将你的输出压缩到特定的标准RSS字段。我能想到的最佳选择是将你的输出作为json(一个JavaScript对象),因为json保留了输入中的所有字段: http://pipes.yahoo.com/pipes/pipe.run?_id=5302fba3cc2d02f7a87ffdded87ce627&_render=json 除了RSS之外,大多数现代处理器都会使用json输出。

+0

谢谢。这有助于。我在谷歌小工具中使用输出,它不会自行处理JSON。 我已经开始尝试编写代码来使用JSON订阅源。它已经相当不错了,直到获取从xhtml转换为json的内容提要并将其转换回HTML输出。必须有一个标准的方式来处理这个,但我似乎无法找到它。 – TomHinkle