【发布时间】:2015-02-12 20:34:11
【问题描述】:
XML 新手,我不知道如何根据连接到它的另一个 XML 属性来更改我选择的 XML 属性,例如,XML 文件的结构如下:
<userinfo>
<id username="tommy" password="supersecret" email="email@gmail.com" question="Favourite colour" answer="blue"></id>
<id username="bobby" password="password123" email="derp@gmail.com" question="Pet name" answer="sally"></id>
<id username="scotty" password="encrypted" email="herp@gmail.com" question="Favourite colour" answer="blue"></id>
</userinfo>
我需要根据用户名更改密码值。例如,我有用户名“tommy”,我想将 tommy 的密码更改为我拥有的变量。
我尝试了以下方法,但似乎什么也没做,没有错误,什么也没做:
protected void changePassword(string username, string password)
{
//xmlFile is the XDocument xml file path
var query = from c in xmlFile.Descendants("id")
.Where(id => (string)id.Attribute("username") == username)
select c;
foreach (XElement id in query)
{
id.Attribute("password").Value = password;
}
xmlFile.Save(@"xml\filepath\doc.xml");
}
这是基于我所看到的,虽然我还没有看到如何使用“where”来做到这一点,所以“var query”......有点在我看来是有意义的。
这是在 asp.net 中使用的,通过按钮调用:
protected void btnContinue_Click(object sender, EventArgs e)
{
var change = Log.GetUserInfoForgot(username, txtNewPassword.Text);
}
在这里我听起来像个菜鸟,但它不会让我只调用该方法,而是将它分配给一个 var,即使它不返回任何内容。这可能也导致了一个问题。
【问题讨论】: