Как перечислить только узлы XML, расположенные непосредственно под корневым узлом
Например, как я могу перечислить player1
, player2
, и player3
в .NET 4.0 ListView
?
<?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 ответ:
С помощью 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