花了半天时间测试从rss.xml转化的blogML.xml导入blogengine的问题,开始总是报"BlogReader.Import: 未将对象引用设置到对象的实例"的错误。不知道问题出在哪里,只能分步骤测试,现注释掉tags和comment的导入,没问题,再注释comment,tags也没问题,最后发现问题就出在comment中。为了查找根源,首先从blogengine中导出一个blogml.xml文件,再拿需要导入的blogml与之比较,发现在comment的属性中少了 user-email="post@example.com" user-ip="::1" user-url="http://localhost.com.cn/"部分,修改后如下:

View Code
 <comments>
 
<comment id="b7f0568f-a5cc-49c9-82f6-93527a5c1d14" parentid="00000000-0000-0000-0000-000000000000" date-created="2011-04-24T13:28:40" date-modified="2011-04-24T13:28:40" approved="true" user-name="Admin" user-email="post@example.com" user-ip="::1" user-url="http://localhost.com.cn/">
 
<title type="text">
 
<![CDATA[ re: Auto Draft
  ]]
> 
  
</title>
 
<content type="text">
 
<![CDATA[ 很好,测试
  ]]
> 
  
</content>
  
</comment>
  
</comments>

 

通过blogengine的控制台-设置-导入/导出-Import from file导入时,如果有已经导入的post就不会再导入,导入成功后会显示导入多少条post.

blogengine默认的数据存储方式是xml,这些导入的post被存放在App_Data的Posts目录下,每条post都存在一个独立的xml文件中。

如果要大量删除post,可直接到去文件加中删除这些xml文件,当然得要有权限才行。

 

还有一个问题,前面提到为了绑定tag和comment的Repeater,需要给原xml文件中的item节点添加id 属性,存放在新的xml中。

这个新的xml通过页面blogml.aspx转化成blogml文件时,如果在blogengine项目中转化会出现乱码,如果另建一个新项目转化就正常,初步断定是编码的问题,可能blogengine中编码方式的设置,但还没有找到在哪里。