1

我正在编写一个管道来重新映射 RSS 提要中的几个节点。

最近创建了一个新的 torrent 命名空间,并在一些提供 bittorrent 提要的网站上使用。提要中每个项目的 torrent 节点都包含磁铁 /URI,我正在尝试将其重新映射到媒体内容的链接,因此我的 bittorrent 客户端将默认下载该文件而不是文件本身,因为我几乎可以保证它可以获得通过 DHT 下载 torrent 文件与由于正常运行时间问题而直接下载 torrent 文件不同。

我已经设法正确地重新映射它,除了磁铁 uri 存储CDATA在magnetURI 节点中。当管道处理它时,它会转义特定于 uri 的字符,如 & 符号。有没有办法强制管道按原样呈现数据而不转义?

以下是从其中一个提要中提取的项目的示例:

<item>
    <title><![CDATA[Some torrent title]]></title>
    <link>http://www.somebittorrentsite.com/fileofinterest.torrent</link>
    <pubDate>Mon, 21 Feb 2011 00:00:00 -0000</pubDate>
    <description><![CDATA[A torrent file you'd like to download.]]></description>
    <enclosure url="http://www.somebittorrentsite.com/fileofinterest.torrent" length="123456789" type="application/x-bittorrent" />
    <guid>912554a5-dd0e-4bee-b2ed-d776e0471552</guid>
    <torrent xmlns="http://xmlns.ezrss.it/0.1/">
        <fileName><![CDATA[fileofinterest.torrent]]></fileName>
        <contentLength>123456789</contentLength>
        <infoHash>E4799FF799F9C8C26BA087C601A732DF748FDFB0</infoHash>
        <magnetURI><![CDATA[magnet:?xt=urn:btih:E4799FF799F9C8C26BA087C601A732DF748FDFB0&dn=fileofinterest]]></magnetURI>
    </torrent>
</item>

一旦它穿过重新映射所有内容的管道,您可以在media:content磁铁中看到 uri 已被转义。

<item>
    <title>Some torrent title</title>
    <link>http://www.somebittorrentsite.com/fileofinterest.torrent</link>
    <description>A torrent file you'd like to download.</description>
    <guid isPermaLink="false">912554a5-dd0e-4bee-b2ed-d776e0471552</guid>
    <pubDate>Mon, 28 Feb 2011 19:44:07 -0800</pubDate>
    <media:content url="magnet:?xt=urn:btih:E4799FF799F9C8C26BA087C601A732DF748FDFB0&amp;amp;dn=fileofinterest" type="application/x-magnet"/>
</item>
4

1 回答 1

0

YP 被设计用于非程序员的人类可读文本,因此转换单个 '&' to '&amp;'是有意义的。

我唯一能建议的是将管道通过替换模块并以这种方式交换回来。

于 2012-05-10T14:21:08.307 回答