C# 在c中替换xml元素值#
这是我的xml文件数据C# 在c中替换xml元素值#,c#,xml,xml-parsing,linq-to-entities,xmldocument,C#,Xml,Xml Parsing,Linq To Entities,Xmldocument,这是我的xml文件数据 <Persons> <Person> <Name>john</Name> </Person> <Employee> <Detail> <Firstname>john</FirstName> </Detail> </Employee>
<Persons>
<Person>
<Name>john</Name>
</Person>
<Employee>
<Detail>
<Firstname>john</FirstName>
</Detail>
</Employee>
<Student>
<FullName>john</FullName>
</Student>
</Persons>
厕所
厕所
厕所
我想在所有地方把“约翰”换成“丹尼”
如何使用c#?一种可能的方法来实现这一点:
请注意,XElement.Value
包含元素中所有连接的文本节点
这一点的意义在于,例如,将XML作为输入,不仅
具有“john”值,而且
。但是我们只想更新叶元素,而不是祖先元素
*)我假设您并不是真的想通过使用较新的XMLAPIXDocument
来标记这个问题,尽管也可以使用XmlDocument
var doc = XDocument.Load("path_to_xml_file.xml");
//select all leaf elements having value equals "john"
var elementsToUpdate = doc.Descendants()
.Where(o => o.Value == "john" && !o.HasElements);
//update elements value
foreach(XElement element in elementsToUpdate)
{
element.Value = "danny";
}
//save the XML back as file
doc.Save("path_to_xml_file.xml");