【发布时间】:2021-05-29 16:14:12
【问题描述】:
我需要检索主节点的属性,但我的代码没有打印任何内容。
<MAINNODE AONE="22 11 12" ATWO="444"><CHILDNODE Aone="7"/></MAINNODE>
这是代码:
var listItems = xdocument.Root
.Elements("MAINNODE")
.Select(e => e.Attribute("AONE"))
.Select(a => a.Value.Split(' ').Select(s => XmlConvert.ToInt32(s)).ToList())
.ToList();
foreach (List<int> list in listItems)
{
print(list);
}
我能够获取子节点的属性,但不能获取主节点的属性。我是 LINQ 和 XML 的新手。
【问题讨论】:
-
如果这是整个XML,那么
Root就是主节点,你可以通过xdocument.Root.Attributes获取它的属性。 -
应该是:.Elements("MAINNODE") 你缺少双引号
-
是的,刚刚编辑谢谢
-
Elements("MAINNODE")查找名为 MAINNODE 的根节点的 children -
void Main() { var xml = @"
主节点>"; var listItems = XElement.Parse(xml) .DescendantsAndSelf("MAINNODE") .Select(e => e.Attribute("AONE")) .Select(a => ((string)a).Split(' ')) .SelectMany(s => s.Select(x => int.Parse(x))) .ToList(); foreach(listItems 中的 var 列表){ Console.WriteLine(list); } }