【问题标题】:How to create proper RSS pubDate with Yahoo Pipes?如何使用 Yahoo Pipes 创建正确的 RSS pubDate?
【发布时间】:2014-03-28 04:40:31
【问题描述】:

我想将 24 february 2014 等格式的日期转换为正确的 RSS pubDate 格式(实际上我页面上的 february 是用俄语编写的)。 我有以下代码来创建自己的 RSS -

XPath 获取页面

URL: http://www.tcsbank.ru/about/news-archive/
Extract Using XPath: //li[@class='news-list__item']
Use HTML5 parser: yes

循环

For each *item* in input field
  ...
  PubDate: item.span
emit *all* results

循环

For each *item.pubDate*
  Replace
  first * january * with *.01.*
  first * february * with *.02.* 
  ...
assign results to *item.pubDate*

结果,我的 pubDate 包含格式为 DD.MM.YYYY 的值(并且仅适用于前 10 个月,因为 Replace 仅支持 10 次替换)。哪个日期仍然无效。

我应该如何解决这个问题?

【问题讨论】:

    标签: yahoo-pipes


    【解决方案1】:

    您可以像上一个循环一样再添加一个循环,以完成剩余的几个月:

    For each *item.pubDate*
      Replace
      first * november * with *.11.*
      first * december * with *.12.* 
      ...
    assign results to *item.pubDate*
    

    但更简单的解决方案是为此使用 Regex 而不是 Loop

    in item.pubDate replace january with 01
    in item.pubDate replace february with 02
    ...
    

    再次为过去两个月创建第二个 Regex。 (相同的最多 10 个条目限制)

    最后,要将这些现在的数字日期转换为不同的日期格式,您可以使用 Regex 替换,如下所示:

    in item.pubDate replace (\d\d)\.(\d\d)\.(\d{4}) with $3-$2-$1
    

    这会将 DD.MM.YYYY 格式转换为 YYYY-MM-DD 格式。如果您需要稍微不同的格式,请适当调整表达式。

    更新

    我克隆了你原来的管道并做了我能做的:

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

    ...不幸的是,它仍然不起作用:RSS 视图仍然不包含pubDate,即使我将其转换为正确的DateTime 对象。奇怪的是,管道的页面一开始显示警告,有些东西不是正确的DateTime 对象,但随后视图发生了变化,它正确显示了提要条目。我不明白那里的 DateTime 对象不是正确的。

    Yahoo Pipes 有问题。 应该 工作的许多事情都不起作用,但有时有一种解决方法。如果你玩的时间足够长,也许你会为此找到一个。但也许不是。无论如何,祝你好运。

    【讨论】:

    • 谢谢。但仍然是主要问题 - 文本 DD.MM.YYYY 而不是日期时间 - 不固定......
    • janos,您的方法有助于更改日期格式(截至日期为 2014-04-3),但仍无法识别为正确的日期时间,因此不会传播到 RSS。
    • @LA_ 如果你告诉我你需要的确切格式和你拥有的输入文本,也许我可以修复它。我真的不知道你的意思是它不被认为是正确的日期时间。通过什么方式?你的 RSS 客户端?你用什么来检查日期是否是“正确的格式”?我需要一种方法来完全按照你的方式进行测试,否则很难看出问题。
    • 输入文本在原问题中给出,它是http://www.tcsbank.ru/about/news-archive/。结果,我应该为每个项目获得带有 pubDate 元素的 RSS。但是没有pubDate - 请参阅RSS 结果pipes.yahoo.com/pipes/…(希望该链接对您有用)。我认为这是因为传递了错误的格式日期。也看看我现在有什么 - goo.gl/6H1WLg, goo.gl/pgIw5v
    • 谢谢@LA_...我希望你能找到让它工作的方法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多