我有以下 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);
这不起作用,因为它只在结果中返回“用户”。
我是 linq 的新手,有人能告诉我正确的做法吗?
最佳答案
var result = xdoc.Descendants("Users")
.First()
.Elements()
.Select(e=>e.Name);
关于c# - 用于检索所有子节点的 Linq-to-XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18417486/