0

我正在使用 yahoo 管道来聚合各种 rss 提要(并进行一些简单的转换等)。但是,我的提要的 XHTML 内容被聚合过程剥离了。这个问题似乎与我的管道代码无关,而只是雅虎管道如何将输入 RSS 转换为它吐出的输出 RSS 的结果——尽管两者显然都是 RSS,但它们是完全不同的 XML文件。

因此,例如,当“输入” 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>

似乎问题在于我输入中的 <content> 标记的内容正在被转换为 yahoo rss 输出中的 <description> 标记,并且从我查找的内容来看, <description> 标记不支持其中的标记它,因此该内容是纯文本是有道理的。

我的问题是我找不到任何文档说明雅虎为何进行这种转变或如何避免这种转变。我在管道中找不到任何东西,但另一方面,我找不到访问管道输出的未转换版本的方法。看来我一定遗漏了一些东西,因为显然人们一直在 RSS 中使用嵌入式 HTML,我无法想象它在每个管道中都被压扁了。

这是一个最小测试用例的链接,我在其中拉入一个提要并使用 Yahoo 管道再次输出: http://pipes.yahoo.com/pipes/pipe.info?_id= 5302fba3cc2d02f7a87ffdded87ce627

谁能告诉我如何修改上面的测试管道,以便它吐出带有 html 的内容?或者,任何人都可以解释如果/为什么这是不可能的吗?

4

1 回答 1

0

AFAIK 您无法将原始提要输出作为 XML - Yahoo! 正如您所注意到的,将您的输出硬塞到特定的标准 RSS 字段中。我能想到的最佳选择是将您的输出作为 json (一个 javascript 对象),因为 json 保留了输入中的所有字段: http ://pipes.yahoo.com/pipes/pipe.run?_id= 5302fba3cc2d02f7a87ffdded87ce627&_render=json 大多数现代处理器除了 RSS 之外还会接受 json 输出。

于 2013-08-23T16:57:51.230 回答