Reputation: 13487
Consider this 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>
I declare a XElement
variable and create the XML assigning it to that. How I can get count of ID
elements in this XML variable in C#?
Upvotes: 21
Views: 40484
Reputation: 96557
Prerequisite: in order to use .Count()
you need to import the namespace System.Linq
:
using System.Linq;
You can filter the descendant elements using the Descendants
method with the name "ID", then count the results:
int count = xml.Descendants("ID").Count();
Be aware that Descendants
looks through all levels. If you had an element other than Person
that also had an ID
child element, you would want to be more specific. In that case, to count ID
child elements that belong to Person
elements, you would use:
int count = xml.Elements("Person")
.Elements("ID")
.Count();
Upvotes: 42
Reputation: 21
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(XmlPath);
var totalItems = xmldoc.SelectNodes(
"/root/node/LastName/").Count;
Upvotes: 1