如何使用Linq XDocument重构Xml?

时间:2012-04-27 15:58:35

标签: xml linq linq-to-xml

我需要重组xmls的负载。更喜欢做的事情是Linq with XDocument ..但我欢迎你提出任何建议。非常感谢。

我抓了一张照片..我希望这足以解释我想做什么。

enter image description here

1 个答案:

答案 0 :(得分:1)

听起来像你想要的那样:

var original = XDocument.Load(...);
var replacement = new XDocument(
    new XElement("root",
        original.Descendants("Song")
                .GroupBy(x => (string) x.Attribute("artist"))
                .Select((songsForArtist, index) => new XElement("artist",
                    new XAttribute("id", index + 1),
                    new XAttribute("name", songsForArtist.Key),
                    songsForArtist)));