因为受不了博客园的渣样管理团队,我决定离开博客园,建立独立博客,图个自由、清静、安生。 之前参考了这篇《将博客园(cnblogs.com)数据导入到wordpress》的方法,但是可能是版本变化,导致其会遇到以下错误,无法正常导入:
Warning: Cannot set time limit with permission (max_execution_time = 120) in wp-content/plugins/cnblog/LvConfigUI.php on line 2 Warning: copy(/data1/www/htdocs/928/skydblog/1/wp-content/plugins/cnblog/database/201411031325407933.xml) [function.copy]: failed to open stream: Permission denied in wp-content/plugins/cnblog/LvUpThumb.php on line 69 Warning: chmod() [function.chmod]: Permission denied in wp-content/plugins/cnblog/LvUpThumb.php on line 70 Warning: filesize() [function.filesize]: stat failed for /data1/www/htdocs/928/skydblog/1/wp-content/plugins/cnblog/database/201411031325407933.xml in wp-content/plugins/cnblog/LvUpThumb.php on line 76 Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "/data1/www/htdocs/928/skydblog/1/wp-content/plugins/cnblog/database/201411031325407933.xml" in wp-content/plugins/cnblog/LvConvert.php on line 10 Warning: Invalid argument supplied for foreach() in wp-content/plugins/cnblog/LvConvert.php on line 24
我不会PHP,所以无从下手,于是自己研究出了另一种方案。 首先去博客园后台,备份你的博客,这时将获得一个XML文件,其内容大致如下: image 下面请看一下WordPress的标准XML数据格式(WXR): image 可以看出总体结构差别不大,但细节还是有不少差别的。 我找到了GitHub上有一个开源的WRX生成类库——wrx.net 下载其源码,并一同下载其依赖项目——XMLGuy 在VisualStudio中新建一个解决方案(C#的命令行程序或桌面程序均可),引入这两个项目,这里需要稍做一下修改: 首先XMLGuy项目中修改XmlElement.cs文件(右侧为修改后的代码): image 然后wrx.net项目中修改Site.cs文件(右侧为修改后的代码): image 主项目引用上述两个项目,然后编写主体代码:
var doc = XDocument.Load("CNBlogs.xml"); var channel = doc.Element("rss").Element("channel"); var site = new Site() { Title = channel.Element("title").Value, Description = channel.Element("description").Value, Link = channel.Element("link").Value, PubDate = DateTime.Parse(channel.Element("pubDate").Value), BlogUrl = channel.Element("link").Value, BaseUrl = channel.Element("link").Value, }; foreach (var f in channel.Elements("item")) { var p = new Post() { Title = f.Element("title").Value, Date = DateTime.Parse(f.Element("pubDate").Value), Content = f.Element("description").Value, Id = f.Element("guid").Value }; site.Posts.Add(p); } site.Save("WordPress.xml");
编译后在exe输出的目录中复制博客园的备份xml,文件名改为CNBlogs.xml,执行程序后会生成一个WordPress.xml文件,这就算完成了。 剩下的事就是导入WordPress了,导入功能在后台的这里: 2014-11-5 16-07-15 进去之后上传刚才输出的WordPress.xml文件,会有一大堆警告,没事的,确认即可。 最后去文章页中批量设置所有文章的状态为”已发布“即可。 注意:文章的评论、标签、分类数据在博客园备份数据里都没有的,这算是迁移损失,但为了独立,忍了吧。
转载此文章时须注明转载自”SkyD(斯克迪亚)开发者博客“,并保留此文章的Url链接

作者信息

昵称
斯克迪亚

查看其所发布的所有文章

总积分
2440
注册时间
(2018年5月4日 19:06)

评论

目前还没有任何评论。

[切换到移动版页面]