blogengine系统架构起来了,怎样把原有的博客导入是个问题,我想把以前放在网上的博客全部都集中导入到自己架构的系统中做个备录。

    新浪博客导入导出遵循rss规则,而blogengine的博客导入虽然也支持rss,但是试了几次都报错,不知问题出在哪里,在网上也找不到啥好的解决方案,倒是看到有建议先将rss转换成blogMl,再以blogMl模式导入。试了一个blogml的文件,果然成功。决定就这么办。

    新浪的RSS页面只提供了几篇博客,要想得到所有博客的RSS源,可以通过博客巴士,注册后将新浪的博客导入,然后备份,取得所有博客的RSS源。最初想通过先导入到wordpress,然后通过wordpress的 blogML导出工具导出blogML源,但是试验后发现导入率很低,几百篇博文只导入了二十多条。 遂决定自己来写这个rss转化成blogml的程序。正好可以学习xml,因为rss和blogML都遵从xml规则。

   找到http://blogml.codeplex.com/releases/view/171这个页面上有一些现成的blogML的资源,下了BlogML 2.0 ,这是blogML生成代码,认真研究代码,发现只要把数据绑定到几个repeater就可以生成需要的blogML文件了,而这些数据源就需要从原始的rss提取。有了这个思路,接下来就是技术问题了。

   在这个过程中,学习了Repeater控件的使用,xml的读写及使用xPath检索需要的数据,还有这两者结合的介质dataset的使用。为了解决从rss到blogml的转化,能学到这么多技巧,花了几天的时间,还是值得的。把期间用到的一些知识点及资源放在下面备忘。

 

博客搬家到WordPress的方法这是为了想通过wordpress导出blogML用到的方法。其中有一个关键点就是blogbus导出的rss不能直接导入到wordpress,要进行一些改良,而这篇文章就讲到了这个方法。需要用python来转Blogbus的XML。在写这篇博文的时候才发现有python2.5.1的安装链接,当时自己从别的网站下了3.x的版本,后来转化失败,才想到版本问题。现在看来仔细学习别人的技巧还是很重要的,每个字都要认真看。

下完安装后,使用bus2wp.py bus.xml wp.xml命令就可以将blogbus导出的RSS转化成能够导入wordpress的合格的xml了。非常简单,但是一定要注意使用的python版本。

 

Migrate from WordPress to BlogEngine.net  这是直接从wordpress的数据库导入到blogengine数据库以实现导入博客的方式,我想这个是更彻底的,有空一定得看下,如果通过这个导入,就可以深入了解数据库,但是我的想法是先学xml,所以先搁一搁。

而这篇Moving from Wordpress to BlogEngine.Net是通过改良wordpress的导出文件export.php以导出blogml文件,再通过这个文件导入blogengine.net。这个方法前面提到试验不成功,导入率很低。

还看到從 CommunityServer 2007 到 BlogEngine.NET, cs系统以前也研究过一阵子,非常强大的一个系统,看到这个名字就觉得亲切,但是鉴于手头的紧要事,这个方法还是先缓一缓吧。

所以,通过wordpress、数据库或者cs导入blogengine都是可行的,只是需要做一些改进。这些改进也要在了解了其原理之后修改,不比自己写省心多少,所以还是自己先了解下本质问题,把rss和xml都翻出来看一看,自己转化最贴合,而且可以随时调整。接下来的工作就是解决从rss转化成blogml的问题了。