在通过C#(Mono)进行RSS信息的解析时,遇到了以下的错误:

而解析的Rss2.0文件内容如下:

从上面异常相关的信息,显然是对pubDate的解析问题。这样的话只要在读入的时候将pubDate替换成可以被Mono解析的格式就可以了。
因为Rss20Formatter是从XmlReader中获取消息的,那么我们就可以对XmlReader的代码进行override,加入对应的替换代码。
这里 是一个override的代码,内容如下:

读取时构造MyXmlReader即可,上面的ToString(“r”)代表转换为 RFC822 格式的日期描述,是Mono可以接受的。
不过实际尝试过程中,上面的代码是无法奏效的。
查看 Mono中对应部分的源代码 ,发现并没有用上面的方法进行内容获取,而是使用了 XmlReader.ReadElementContentAsString() 进行获取,于是对此函数进行override。

然而依然无法避免运行时错误,观察底部 FromRFC822DateString 函数的定义,可以发现实际解析的格式只有三种,并不是严格的 RFC822,将代码解析成为上述格式即可解决。最后附上代码:

PS1:时隔快两个月了…?感觉这两个月都只是在增加经验,实际上搜索引擎中无法高效找到的问题,也只有上面那个了…
PS2:接下来就要认真复习考研啦…..x
PS3:f7(eiki)
PS4:试试自己能不能弄一个pull request呢…?