如何使用Linq将元素插入XML? [英] How do I insert an element into XML using Linq?

查看:57
本文介绍了如何使用Linq将元素插入XML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的XML:

<content>
    <item id="1">A</item>
    <item id="2">B</item>
    <item id="4">D</item>
</content>

我已使用类似以下的XML加载了该文件:

I have loaded this using XML similar to:

XDocument xDoc = new XDocument(data.Value);
var items = from i in xDoc.Element("content").Elements("item")
    select i;

我想插入另一个元素,最后得到类似这样的内容:

I want to insert another element, to end up with something like:

<content>
    <item id="1">A</item>
    <item id="2">B</item>
    <item id="3">C</item>
    <item id="4">D</item>
</content>

如何使用Linq2Xml做到这一点?

How do I do this using Linq2Xml?

推荐答案

尝试一下:

xDoc.Element("content")
    .Elements("item")
    .Where(item => item.Attribute("id").Value == "2").FirstOrDefault()
    .AddAfterSelf(new XElement("item", "C", new XAttribute("id", "3")));

或者,如果您像我一样喜欢XPath:

Or, if you like XPath like I do:

xDoc.XPathSelectElement("content/item[@id = '2']")
    .AddAfterSelf(new XElement("item", "C", new XAttribute("id", "3")));

这篇关于如何使用Linq将元素插入XML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆