c# - 用于检索所有子节点的 Linq-to-XML

标签 c# xml linq linq-to-xml

我有以下 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/

相关文章:

c# - MVC3 应用程序 : What folder to use for saving files on the server?

c# - 禁用基于绑定(bind)值 WPF 的 ListBox 项的选择

c# - 如何使用 IdentityUser 角色?

xml - 过滤所有具有定义命名空间的元素

java - 无法使用 Stax 中的 XMLEventReader 检查 XML 中的 CDATA

java - 在 Java 中根据 Xml 模式数据类型验证字符串

c# - 我如何将 linq 转换为 lambda

c# - 创建通知中心 - 仅 REST(无 SDK)

c# - 不支持在 xamarin.android 上使用 LINQ 连接 SQLite.Net 中的表

c# - 无法创建类型为 'System.Int32[]' 的空常量值。