2012-01-06 6 views
13

Rozważmy ten XML:Jak uzyskać określony element hrabiego w formacie XML lub Xelement zmiennej

<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> 

zadeklarować zmienną XElement i utworzyć plik XML z przypisaniem go do tego. Jak mogę uzyskać liczbę elementów ID w tej zmiennej XML w języku C#?

Odpowiedz

32

można filtrować elementy potomka za pomocą Descendants method o nazwie „ID”, a następnie policzyć wyniki:

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

Należy pamiętać, że Descendants wygląda na wszystkich poziomach. Jeśli masz element inny niż Person, który również miał element potomny ID, chciałbyś być bardziej szczegółowy. W takim przypadku, aby liczyć ID elementy podrzędne, które należą do Person elementów, należy użyć:

int count = xml.Elements("Person") 
       .Elements("ID") 
       .Count(); 
+0

Jeśli nie używać 'elemets ("pracownicy")' zwraca 0: - ? – Arian

+1

@Nima w oparciu o dane wejściowe 'Pracownicy' jest węzłem głównym, a jeśli używasz' XElement', nie ma potrzeby, aby 'Elementy (" Pracownik ") były częścią zapytania. Jeśli nie jest to element główny, to możesz go włączyć lub użyć 'xml.Descendants (" Person "). Elementy (" ID ") .Zlicz zamiast(), unikając w ten sposób potrzeby przejścia elementu XML według elementu. –

0
var cnt = element.Descendants("ID").Count(); 
0
XmlDocument xmldoc = new XmlDocument(); 
xmldoc.Load(XmlPath); 
var totalItems = xmldoc.SelectNodes(
     "/root/node/LastName/").Count; 
Powiązane problemy