我是否知道如何使用linq更新第二个元素的属性到xml?我写了一些代码,但它不起作用,它只更新用户属性....我很抱歉问这个简单的问题。
我的XML:
<Settings>
<Settig>
<User id="1" username="Aplha"/>
<Location Nation="USA" State="Miami" />
<Email>user1@hotmail.com</Email>
</Setting>
</Settings>
我的Cs:
public static void saveSetting(MainWindow main)
{
XDocument document = XDocument.Load("Setting.xml");
IEnumerable<XElement> query = from p in document.Descendants("User")
where p.Attribute("id").Value == "1"
select p;
foreach (XElement element in query)
{
string i = "New York";
element.SetAttributeValue("State", i);
}
document.Save("Setting.xml");
}
答案 0 :(得分:2)
您想要选择Setting
元素;您仍然可以选择id=1
,如下所示:
IEnumerable<XElement> query = from p in document.Descendants("Setting")
where p.Element("User").Attribute("id").Value == "1"
select p;
然后在更新之前选择Location
元素:
foreach (XElement element in query)
{
element.Element("Location").SetAttributeValue("State", "New York");
}