是否有一种简单的方法来更新xml项目的一个节点?我有这个:
<userlist>
<users>
<name>bob</name>
<userid>1</userid>
</users>
<users>
...etc...
我需要更新用户ID#1中的名称。我有这个(硬编码为了清晰,而不是它的功能):
XDocument userDoc = XDocument.Load(path);
var userList = from users in userDoc.Descendants("userlist")
where users.Element("userid").Value == "1"
select users;
foreach (XElement user in userList)
{
user.SetElementValue("name", "Phil");
}
有更好的方法吗?谢谢!
答案 0 :(得分:1)
您可以使用 First
var firstUser = (from users in userDoc.Descendants("userlist")
where users.Element("userid").Value == "1"
select users).First();
firstUser.SetElementValue("name", "Phil");
或
userDoc.Descendants("userlist").First( x => x.Element("userid").Value == "1" ).SetElementValue( "name", "Phil");