This post has has the full scoop on the process of migrating blogs from Community Server to WordPress, except for this bit: “ultimately, I just wrote a simple regular expression to reformat all the categories so that their names were in the ID attribute.” Instead of regex, I wrote a a C# script using LINQ to XML:
const string source = @"D:export.xml"; string source = @"D:export.xml"; var doc = XDocument.Load(source); var categories = new Dictionary(); foreach (var cat in doc.Elements().First().Elements().Descendants().Where(cat => cat.Name.LocalName == "tag")) { if (cat.Attribute("id") != null) { categories.Add(Convert.ToInt32(cat.Attribute("id").Value), cat.Elements().First().Value); } else { int refId; if (int.TryParse(cat.Attribute("ref").Value, out refId)) // in case it was already run { cat.Attribute("ref").Value = categories[refId]; } } } doc.Save(source); |