C# 使用linq向xml文档子节点添加属性

C# 使用linq向xml文档子节点添加属性,c#,linq,C#,Linq,我正在尝试创建一个元素并定义xml文档的路径,其中一个尝试是: XElement main = XElement.Load(xmlpath); 然后,我尝试选择要添加属性的现有元素 main.XPathSelectElement("/Row/ip_addresses").SetAttributeValue("id", sp_range.ToString()); 这两个我都试过了 main.XPathSelectElement("/Row/ip_addresses").ReplaceAttr

我正在尝试创建一个元素并定义xml文档的路径,其中一个尝试是:

XElement main = XElement.Load(xmlpath);
然后,我尝试选择要添加属性的现有元素

main.XPathSelectElement("/Row/ip_addresses").SetAttributeValue("id", sp_range.ToString()); 
这两个我都试过了

main.XPathSelectElement("/Row/ip_addresses").ReplaceAttributes("id", sp_range.ToString());
这段代码中没有错误,只是xml文档和现有元素没有任何变化,现有的子元素是,父元素是,我正在使用Xpath导航到我想要添加属性的子元素,根据Linq,我们应该能够更改存在或不存在的属性,更改存在的ElementTags或创建不存在的元素


请提供任何有帮助的建议

您似乎没有持续/保存更改

尝试从当前元素下不存在的“行”中选择的方法。当前元素本身就是“行”。因此,您需要从根
“/ip\u地址”
,而不是从
“/Row/ip\u地址”
中进行选择


它说,在能够使用main.save之前,需要将其序列化到编写器;如果通过调用main.ToString()更新该值,则可以测试该值;它不更新任何内容的原因是因为您的节点路径不正确。谢谢,先生,它起作用了,我只需要指向xml文件路径,它就保存了它。根元素是Import,父元素是Row,我试图在xml中访问的子元素是ip\u地址,因此我的xpath是Row/ip\u地址,它选择了所有可用的元素争吵的孩子们。或者//ip\U地址,它获取所有ip\U地址,无论它们在XML中的什么位置,但都不起作用
main.XPathSelectElement("/ip_addresses").SetAttributeValue("id",sp_range.ToString()));