如何仅列出直接位于根节点下的XML节点

时间:2013-07-21 11:26:33

标签: c# xml listview nodes xmldocument

例如,如何在.NET 4.0 player1中列出player2player3ListView

<?xml version="1.0"?>
<players>
  <player1>
    <name>playername</name>
    <age>18</age>
    <gender>m</gender>
  </player1>
  <player2>
    <name>playername</name>
    <age>18</age>
    <gender>m</gender>
  </player2>
  <player3>
    <name>playername</name>
    <age>18</age>
    <gender>m</gender>
  </player3>
</players>

1 个答案:

答案 0 :(得分:4)

使用Linq to XML(我建议你使用.Net 4.0),你可以得到它们:

var xdoc = XDocument.Load(path_to_xml);
var players = xdoc.Root.Elements();

获取名称属性:

var names = from p in xdoc.Root.Elements()
            select (string)p.Element("name");

XmlDocument使用没有任何好处,因为它还将所有xml加载到内存中。如果您只想获取xml元素名称:

var players = from p in xdoc.Root.Elements()
              select p.Name.LocalName; // player1, player2, player3