[英]Retrieve sequence of XML Elements from XDocument
我有一個示例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中,用戶名是唯一的
您可以嘗試使用以下代碼段(方法)通過將UserName
作為參數從Xml doc
提取password
:
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,而_pwdAndId[1]
於密碼。
public string[] GetPasswordAndId(string UserName)
{
XDocument xDoc = XDocument.Load("Users.xml");
XmlNodeList _users = xDoc.SelectNodes("//users/user");
string[] _pwdAndId = new string[2];
foreach (XmlNode _node in _users)
{
if (_node.SelectSingleNode("username").InnerText == UserName)
{
_pwdAndId[0] = _node.SelectSingleNode("id").InnerText;
_pwdAndId[1] = _node.SelectSingleNode("password").InnerText;
break;
}
}
return _pwdAndId ;
}
希望這會有所幫助。 最好的祝福,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.