如何使用linq to xml概念获取wpf中的元素名称?

时间:2012-08-08 03:53:30

标签: c# wpf linq-to-xml

<Contacts>
       <Node>
           <ID>123</ID>
           <Name>ABC</Name>
       </Node>
       <Node>
           <ID>124</ID>
           <Name>DEF</Name>
       </Node>
</Contacts>

在这里,我想获取元素名称(标记名称),例如通讯录,* 节点 *, ID ,* 名称 *使用linq to xml概念。我应该怎么做。

1 个答案:

答案 0 :(得分:2)

试试这个:

var xml = @"<Contacts>
                    <Node>
                        <ID>123</ID>
                        <Name>ABC</Name>
                    </Node>
                    <Node>
                        <ID>124</ID>
                        <Name>DEF</Name>
                    </Node>
            </Contacts>";
var xdoc = XDocument.Parse(xml);
var namelist = xdoc.Descendants()
                    .Select(i => i.Name.ToString())
                    .Distinct()
                    .ToList();

你会得到:

{"Contacts","Node","ID","Name"}

如果要获取第一个节点的名称列表

var nodes = xdoc.Descendants(XName.Get("Node"));
var firstNode = nodes.First();
var namelist = firstNode.Descendants()
                    .Select(i => i.Name.ToString())
                    .Distinct()
                    .ToList();