我有以下XML
<?xml version="1.0" encoding="utf-8"?>
<ErrorServer>
<ClientIP>
<AllowAll>false</AllowAll>
<Client_127_0_0_1>true</Client_127_0_0_1>
</ClientIP>
<Users>
<Admin>
<Password>passw0r!d</Password>
<NextError>83</NextError>
<Active>true</Active>
</Admin>
<JimBob>
<Password>passw0r!d</Password>
<NextError>83</NextError>
<Active>true</Active>
</JimBob>
</Users>
</ErrorServer>
在c中使用linq,我试图使用以下代码获取所有用户名(在上面的示例中为admin和jimbob)
List<string> Result = new List<string>();
XDocument xdoc = XDocument.Load("ErrorServerConfig.xml");
//Run query
var lv1s = from lv1 in xdoc.Descendants("ErrorServer")
select new
{
Children = lv1.Elements("Users")
};
//Loop through results
foreach (var lv1 in lv1s)
{
foreach (var lv2 in lv1.Children)
Result.Add(lv2.Name.ToString());
}
return (Result);
它不能工作,因为它只返回结果中的“用户”。
我是新来的林肯,有人能告诉我正确的做法吗?
最佳答案
var result = xdoc.Descendants("Users")
.First()
.Elements()
.Select(e=>e.Name);