private static void FixArrayAttribs(Stream xml)
{
//string[] anodes = { "phrases", "phraseIterations", "newLinkedDiffs", "linkedDiffs",
// "phraseProperties", "chordTemplates", "fretHandMuteTemplates", "fretHandMutes"/*DDC*/,
// "ebeats", "sections", "events", "levels", "notes", "chords", "anchors", "handShapes", "tones"
//};
string[] anodes = { "phrases", "phraseIterations", "newLinkedDiffs", "linkedDiffs", "phraseProperties", "chordTemplates", "fretHandMuteTemplates", "fretHandMutes" /*DDC*/, "ebeats", "sections", "events", "levels", "notes", "chords", "anchors", "handShapes", "tones" };
xml.Position = 0;
var doc = XDocument.Load(xml);
foreach (var n in anodes)
{
var es = doc.Descendants(n).ToArray();
if (!es.Any()) continue;
foreach (var e in es)
{
var ret = e.Attribute("count");
if (ret == null)
e.Add(new XAttribute("count", e.Elements().Count()));
else
ret.SetValue(e.Elements().Count());
}
}
xml.Position = 0;
doc.Save(xml);
}