今天(昨天写好,本来打算在wplog上发的,但那个DH空间老是503死活发不了,只好发到这里了。)帮一位网友将oblog备份xml文件转换成适用于wordpress2.0 import的(伪)rss文件。
将此格式写出,方便大家搬家到wordpress。
<item>
<title>标题</title>
<pubdate>日期</pubdate><!-- post的日期,可选 -->
<dc :date>备选日期</dc><!-- pubdate的备选项。如果两个都没有,将使用导入时日期时间 -->
<category>目录</category><!-- post的目录,可选。 -->
<dc :subject>备选目录</dc><!-- category的备选项。如都无,使用options中的Default post category -->
<guid .+?>post的permalink</guid><!-- 可选 -->
<content :encoded>内容</content>
<description>备选内容</description>
</item>
由此,能用于wordpress2.0 import的最简xml格式为:
标题
日期
内容
既然知道了import所需文件的格式,转换工作也就变得简单了。
当你有其他blog的备份xml文件时,通过记事本等工具将相应内容的标签改为所需标签即可!
例如oblog:
1、打开oblog的备份文件
2、在编辑处选择”替换”
3、在相应的位置填上适当的内容(oblog为:log替换为item,]]> 替换为 ]]></content>,<![CDATA[#isubb 替换为 <content:encoded><![CDATA[),按”全部替换”
4、到了此步,基本已经完成。但oblog备份的”post内容”是没有任何html标签格式的,就这样导入,blog上显示必定成一团。这时我们可以写一小段php代码,使post内容具有一定的格式(下列php代码可在”post内容”分段处添加<br />):
< ?php
$xml = "";
$f = fopen( 'oblog.xml', 'rb' ); //oblog.xml为刚才转换后的oblog备份文件
while( $data = fread( $f, 4096 ) ) { $xml .= $data; }
fclose( $f );
preg_match_all( "/\<item\>(.*?)\< \/item\>/s", $xml, $items );
foreach( $items[1] as $item ){
$item = str_replace ("\r\n", '<br />', $item);
echo '<item>'.$item."</item>\r\n";
}
?>
5、将上面代码保存为php文件,运行之,将生成文档保存为xml文件,到此时转换完成!
哦,对了。oblod备份的编码为“gb2312”,转成“UTF-8”,只需在记事本中“另存为”,然后把编码设为“UTF-8”后保存就行了。