我有一个样本xml如下
<users>
<user>
<username>John</username>
<password>password1</password>
<id>1234</id>
</user>
<user>
<username>Smith</username>
<password>password2</password>
<id>1234</id>
</user>
<users>
此XML文件像这样加载到XDocument对象中。
XDocument xDoc = XDocument.Load("Users.xml");
如何通过将用户名作为参数传递给它来检索密码和id元素的值,其中用户名在c#.net 4.0中是唯一的
答案 0 :(得分:1)
您可以尝试使用以下代码段(方法)通过传递password
作为参数从Xml doc
中提取UserName
:
public string GetUserPassword(string UserName)
{
XDocument xDoc = XDocument.Load("Users.xml");
XmlNodeList _users = xDoc.SelectNodes("//users/user");
string _pwd = null;
foreach (XmlNode _node in _users)
{
if (_node.SelectSingleNode("username").InnerText == UserName)
{
_pwd = _node.SelectSingleNode("password").InnerText;
break;
}
}
return _pwd;
}
而且,类似于获得id
:
public string GetId(string UserName)
{
XDocument xDoc = XDocument.Load("Users.xml");
XmlNodeList _users = xDoc.SelectNodes("//users/user");
string _id = null;
foreach (XmlNode _node in _users)
{
if (_node.SelectSingleNode("username").InnerText == UserName)
{
_id = _node.SelectSingleNode("id").InnerText;
break;
}
}
return _id;
}
对于性能优化,您可以将这两个方法合并为一个,因此Xml文档只会加载一次,而方法将返回数组string[] _pwdAndId
,其中_pwdAndId[0]
对应于id和{{1密码。
_pwdAndId[1]
希望这会有所帮助。最好的问候,