使用Yahoo Pipes将RSS html标签转换为标准标签项

时间:2014-07-12 12:55:26

标签: regex rss yahoo-pipes delicious-api

我想从使用书签服务Delicious转移到Diigo,但diigo在RSS中组织标签的方式阻止了移动。

我想使用Yahoo Pipe将Diigo rss标签转换为与Delicious rss标签相同的格式

Diigo标签存储为“描述”项目底部的html列表,如下所示:

Some test describing the link.

<p class="diigo-tags"><strong>Tags:</strong>

    <a rel="nofollow" target="_blank" href='https://www.diigo.com/user/username/firsttag'>firsttag</a>

    <a rel="nofollow" target="_blank" href='https://www.diigo.com/user/username/2ndtag'>2ndtag</a>

    <a rel="nofollow" target="_blank" href='https://www.diigo.com/user/username/anothertag'>anothertag</a>

etc... </p>

我需要提取每一个并将它们存储在自己的项目中。美味存储每个标记在嵌套字段类别中的数字,如下所示:

category
  0
   domain http://delicious.com/username/
   content firsttag
  1
   domain http://delicious.com/username/
   content 2ndtag

因此,Yahoo Pipe需要剥离html列表并将每个标记分成单个类别字段。

不知道从哪里开始,除了正则表达式中的正则表达式以去除html:

(?si)<a[^<>]*?[^<>]*>(.*?)</a>

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式运算符执行以下替换,从diigo流中提取标记:

  • 使用<a[^<>]*?[^<>]*>(.*?)</a>替换$1,使用选项g和s(<a>...</a>内的标记本身)
  • 使用选项g和m(删除所有HTML标记)
  • ,无需替换<.+>
  • 使用选项g和s
  • [\s]+替换为单个空格

因此,描述字段现在包含由空格分隔的标记列表。如果你告诉我我可以尝试帮助,我不确定你接下来需要什么。

这是管道:

https://pipes.yahoo.com/pipes/pipe.info?_id=1656d9fcab9d9ed6016bdae7486ee71f

<强>更新

我知道,棘手的部分是在RSS源中添加多个类别节点。不幸的是,我认为这是不可能的。我更新了管道,现在您已经拥有item.category.1.2.3等等,但是当您查看管道的RSS输出时,它并没有显示任何类别。 (我认为这可能与创建RSS 运算符也没有类别字段这一事实有关。)

在JSON输出中,有多个类别正确。

我还测试过,如果只有一个类别字段,它会在RSS输出中正确显示。如果有多个则没有。

我担心这是我能得到你的。