我的XML:
<content>
<item id="1">A</item>
<item id="2">B</item>
<item id="4">D</item>
</content>
我使用类似于:
的XML加载了它XDocument xDoc = new XDocument(data.Value);
var items = from i in xDoc.Element("content").Elements("item")
select i;
我想插入另一个元素,最终得到类似:
<content>
<item id="1">A</item>
<item id="2">B</item>
<item id="3">C</item>
<item id="4">D</item>
</content>
如何使用Linq2Xml执行此操作?
答案 0 :(得分:21)
试试这个:
xDoc.Element("content")
.Elements("item")
.Where(item => item.Attribute("id").Value == "2").FirstOrDefault()
.AddAfterSelf(new XElement("item", "C", new XAttribute("id", "3")));
或者,如果你像我一样喜欢XPath:
xDoc.XPathSelectElement("content/item[@id = '2']")
.AddAfterSelf(new XElement("item", "C", new XAttribute("id", "3")));