0

我可以知道如何使用 linq to 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");
    }
4

1 回答 1

2

您要选择Setting元素;您仍然可以选择 on 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");           
}    
于 2012-11-06T07:38:51.920 回答