我正在尝试使用ContentService对象将我的Wordpress博客导入Umbraco。总的来说,这样可以正常工作,但是博客文档类型使用网格布局编辑器作为主体并将内容导入到该文件中,这证明是一项比我希望的更难的任务。
这是我正在使用的代码:
XDocument loaded = XDocument.Load(Server.MapPath("~/content/my.wordpress.export.xml"));
XNamespace wpns = XNamespace.Get("http://wordpress.org/export/1.2/");
XNamespace contentns = XNamespace.Get("http://purl.org/rss/1.0/modules/content/");
var q = from c in loaded.Descendants("item")
where c.Element(wpns + "status").Value == "publish"
select c;
ContentService cs = new ContentService();
var home = cs.GetRootContent().First(b => b.Name == "Home");
var test = q.Take(2); // Just grab a couple to start with...
IContent newPost;
@foreach (XElement post in test)
{
newPost = cs.CreateContent(post.Element("title").Value,
blog.Id,
"BlogPost"
);
string content = post.Element(contentns + "encoded").Value;
newPost.SetValue("content", content);
newPost.SetValue("introduction", post.Element(contentns + "encoded").Value.Substring(0, 240));
... and so on
cs.SaveAndPublishWithStatus(newPost);
}
网页创建得很好;一般会填充值,但内容字段只是空的。
显然,我没有做任何特别的事情来解释我的代码中的不同字段类型,并且鉴于这些字段基本上只是JSON数组,这可能是我的问题。但是,我希望有一种简单的方法可以将内容推送到这些领域。
这里有没有经验或智慧?