有一个关于使用linq去修改xml数据库的问题。
比如给出了一些代码:public class Linq2XmlClass
{
System.Web.UI.Page page = new System.Web.UI.Page();
string filename = "";
public Linq2XmlClass()
{
filename = page.Server.MapPath(@"App_Data/Signup.xml");
}
public object GetAllUsers()
{
XElement users = XElement.Load(filename);
var useraccounts =
from user in users.Elements("UserAccount")
select new
{
Username = user.Element("Username").Value,
Password = user.Element("Password").Value,
Email = user.Element("Email").Value,
SecurityQuestion =
user.Element("SecurityQuestion").Value,
SecurityAnswer = user.Element("SecurityAnswer").Value
};
return useraccounts;
}
public void InsertUser(string username, string password,
string email, string securityQuestion, string securityAnswer)
{
XElement users = XElement.Load(filename);
users.Add(
new XElement("UserAccount",
new XElement("Username", username),
new XElement("Password", password),
new XElement("Email", email),
new XElement("SecurityQuestion", securityQuestion),
new XElement("SecurityAnswer", securityAnswer)
)
);
users.Save(filename);
}
}
要求根据以上代码写出delete user 和update password。 
初学linq,不知如何下手。谢谢啦!

解决方案 »

  1.   

     
    //自己测试一下>>>删除
    XElement myElement = XElement.Load("csdn.xml");
                var results = from r in myElement.Elements()
                              where r.Attribute("Username") == "条件"
                              select r;
                foreach (var r in results)
                {
                    r.Remove();
                }
                myElement.Save("csdn.xml");
      

  2.   


    //>>>修改  自己再修改成一个方法就OK!!
    XElement myElement = XElement.Load("csdn.xml");
                var results = from r in myElement.Elements()
                              where r.Attribute("Username") == "条件"
                              select r;
                foreach (var r in results)
                {
                    r.Element("Email").SetValue("[email protected]");//更新Email的value
                }
                myElement.Save("csdn.xml");//保存