我想将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
格式的值(仅适用于Replace
仅支持10个替换的前10个月)。这仍然是无效的日期。
我该如何解决这个问题?
答案 0 :(得分:2)
你可以像上一个一样添加一个循环,以完成剩下的几个月:
For each *item.pubDate*
Replace
first * november * with *.11.*
first * december * with *.12.*
...
assign results to *item.pubDate*
但更简单的解决方案是使用正则表达式代替循环:
in item.pubDate replace january with 01
in item.pubDate replace february with 02
...
再次创建过去两个月的第二个正则表达式。 (同样最多10个条目限制)
最后,要将这些现在的数字日期转换为其他日期格式,您可以使用正则表达式替换,如下所示:
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
对象。
雅虎管道有缺陷。 工作的许多事情都不起作用,但有时会有一种解决方法。如果玩足够长的话,也许你会找到一个。但也许不是。祝你好运。