A-A+
wordpress2.0 rss import文件分析及oblog导入
帮一位网友将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格式为:
- <item>
- <title>标题</title>
- <pubdate>日期</pubdate><!-- 谁会将所以post都设定到同一个时间上呢?还是带上吧 -->
- <content :encoded>内容</content>
- </item>
既然知道了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 ("rn", '<br />', $item);
- echo '<item>'.$item."</item>rn";
- }
- ?>
5、将上面代码保存为php文件,运行之,将生成文档保存为xml文件,到此时转换完成!
哦,对了。oblod备份的编码为“gb2312”,转成“UTF-8”,只需在记事本中“另存为”,然后把编码设为“UTF-8”后保存就行了。