RocksmithToolkitLib.Xml.Song2014.FixArrayAttribs C# (CSharp) Method

FixArrayAttribs() private static method

Writes count attribute for chosen nodes.
private static FixArrayAttribs ( Stream xml ) : void
xml Stream Xml stream.
return void
        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);
        }