经典的ASP xsl日期转换
问题描述:
我有下面的代码读取到我的页面rss饲料,但我希望pubDate转换成更人类可读的日期,如果所有可能的。经典的ASP xsl日期转换
<?xml version="1.0" encoding="iso-8859-1"?><!-- DWXMLSource="mm_news.xml" -->
<!DOCTYPE xsl:stylesheet]>
<xsl:output method="html" encoding="iso-8859-1"/>
<xsl:template match="/">
<p class="newsList-date"><xsl:value-of select="pubDate"/></p>........
这给了我:
Fri, 9 Sept 2011 15:21:36 GMT
但想读的东西像
Friday 9 Sept 2011
即使很高兴,如果我可以简单地剪掉年底才有“周五,9 2011年9月'
此外,如果更容易,我可以在XML中添加一个额外的部分,所以我可以简单地输入日期我想要它,所以我可以读它,像下面的东西? (XML是手写不是动态创建的)
<?xml version="1.0" encoding="US-ASCII" ?>
<?xml-stylesheet title="XSL_formatting" type="text/xsl" href="direct.xsl"?>
<rss version="2.0">
<channel>....
<item>....
<title>.....
<description>....
<thedate>.....
非常感谢
答
好了,快&肮脏的方式将取代select="pubDate"
像这样的表达式:
select="substring(pubDate,1,16)"
,一个人的然而依赖于四个月的字母,只会给你''2011年9月9日星期五'的'后备'结果。
如果有必要,你可以是一个有点聪明,并通过使用这种表达删除月份是四个字母(这似乎不太可能为5月)要求:
select="substring(pubDate,1,string-length(substring-before(pubDate,':'))-3)"
而不是采取一个固定长度16,它基于第一个:
(在该时间),并从中减去3。
如果你真正想要的,有一个单行的表达,可以给你你想要的东西,但它是一个有点令人费解:
select="concat(normalize-space(substring('Monday Tuesday WednesdayThursday Friday Saturday Sunday ',string-length(substring-before('MonTueWedThuFriSatSun',substring(pubDate,1,3))) * 3 + 1,9)),substring(pubDate,5,string-length(substring-before(pubDate,':'))-7))"
这将使用“查找”,发现那里的一天星期存在于一个字符串中,并使用它从另一个字符串中选择全名,最后使用'normalize-space'来修剪任何额外的空格。然后它将它与日期部分连接起来。
+0
感谢您为此我有一个类似的第一次使用替换和删除时间和日期,但看着你的,特别是第二个它运作良好,谢谢 –
你为什么使用xsl-fo标签? – AnthonyWJones
whast xsl-fo标签?对不起 –