【问题标题】:convert XML into array list..C# [closed]将 XML 转换为数组列表..C# [关闭]
【发布时间】:2016-05-20 05:25:42
【问题描述】:

我有一个 XML 字符串

<Role name="Admin">
    <PermissionName>ViewEmployees</PermissionName>
    <PermissionName>EditEmployees</PermissionName>
</Role>
<Role name="HR Manager">
    <PermissionName>Shifts</PermissionName>
    <PermissionName>ViewShifts</PermissionName>
    <PermissionName>AddShifts</PermissionName>
    <PermissionName>DeleteShifts</PermissionName>
</Role>

想把它转换成数组列表..请帮忙。

【问题讨论】:

  • 令人惊讶的是,没有关于这个主题的现有问题......请以任何方式解释为什么您需要 ArrayList 作为结果?
  • 获取列表中的角色和权限。字符串[] 角色= ,,字符串[] 权限=..

标签: c# asp.net .net xml


【解决方案1】:
testString = "<root>" + testString + "</root>";    
XDocument doc = XDocument.Load(new StringReader(testString));
var arrayList = doc.Descendants("Role")
                .Select(a => new Role{
                    Name = a.Attribute("name").Value,
                    Permissions = a.Descendants("PermissionName").Select(x=> x.Value).ToList()
                }).ToArray();


public class Role{
public string Name{get;set;}
public List<string> Permissions{get;set;}
}

这就是你要找的吗??

【讨论】:

  • 我遇到了一个问题 有多个根元素。在第 1 行 XDocument doc = XDocument.Load(new StringReader(testString));
  • xml 字符串没有根元素。这个 xml 是否来自不同的来源?如果不是用根元素包围它
  • 是的,不要用根元素包围它。
  • testString = "" + testString + "";在创建 XDocument 之前添加这一行
猜你喜欢
  • 2019-09-07
  • 1970-01-01
  • 2020-01-07
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
相关资源
最近更新 更多