Как получить конкретный элемент Count в переменной XML или XElement - PullRequest
16 голосов
/ 07 января 2012

Рассмотрим этот XML:

<Employees>
    <Person>
        <ID>1000</ID>
        <Name>Nima</Name>
        <LName>Agha</LName>
    </Person>
    <Person>
        <ID>1001</ID>
        <Name>Ligha</Name>
        <LName>Ligha</LName>
    </Person>
    <Person>
        <ID>1002</ID>
        <Name>Jigha</Name>
        <LName>Jigha</LName>
    </Person>
    <Person>
        <ID>1003</ID>
        <Name>Aba</Name>
        <LName>Aba</LName>
    </Person>
</Employees>

Я объявляю переменную XElement и создаю XML, присваивающий ее этому.Как я могу получить количество ID элементов в этой переменной XML в C #?

Ответы [ 3 ]

35 голосов
/ 07 января 2012

Вы можете отфильтровать элементы-потомки, используя метод Descendants с именем "ID", а затем подсчитать результаты:

int count = xml.Descendants("ID").Count();

Имейте в виду, что Descendants просматриваетвсе уровни.Если бы у вас был элемент, отличный от Person, который также имел дочерний элемент ID, вы бы хотели быть более конкретным.В этом случае для подсчета ID дочерних элементов, которые принадлежат Person элементам, вы должны использовать:

int count = xml.Elements("Person")
               .Elements("ID")
               .Count();
1 голос
/ 20 июня 2015
XmlDocument xmldoc = new XmlDocument();
 xmldoc.Load(XmlPath);
var totalItems = xmldoc.SelectNodes(
         "/root/node/LastName/").Count;
0 голосов
/ 07 января 2012
var cnt = element.Descendants("ID").Count();
...