2010-11-25 28 views
6

Ich frage mich, ob es möglich ist, die Anzahl der Elemente in einem XML-Dokument zu zählen, vorzugsweise mit etwas ähnlich wie where (string)query.Attribute("attName") == att Fitler.Zählen der Anzahl der Elemente in einem XML-Dokument

Mit meinem besten Wissen habe ich folgendes versucht, aber leider kann ich nicht scheinen, dass es funktioniert.

     var listElements = reader.Elements("shortlist"); 

         foreach (var element in listElements) 
         { 
          XElement _xml; 
          location.Position = 0; 
          System.IO.StreamReader file = new System.IO.StreamReader(location); 
          _xml = XElement.Parse(file.ReadToEnd()); 
          XAttribute attName = _xml.Attribute("attN"); 

          if (attName.Value == att) 
          { 
           Count++; 
          }        
         } 

Vielen Dank!

+1

Welche Version von Silverlight ist zielen Sie ab? –

+1

Es ist für Windows Phone 7 so weit wie ich weiß es ist hauptsächlich 3 mit einigen Funktionen von 4 – Jamie

Antwort

10

Da doc eine Instanz XDocument

doc.Root.Descendants().Count(d => (string)d.Attribute("attName") == "value"); 
+0

Vielen Dank für die schnelle Antwort. Setze ich einfach "int Count = doc.Root ...", damit ich die Anzahl verwenden kann? – Jamie

+0

Ja, das sollte es tun. –

+0

Das 'Where' Lambda kann zu' d => (String) d.Attribute ("attName") == "value" 'vereinfacht werden und da der' Count' eine Überladung hat, die eine Bedingung akzeptiert, kann man 'Where 'zusammen und verschiebe das Lambda in den 'Count'. – AnthonyWJones

0
XmlDocument x = XmlDocument.Load("data.xml"); //pls excuse if i got the syntax wrong 
XmlNodeList n = x.SelectNodes("//*[@attName='attValue']"); 
//Selects any element occuring anywhere in the document with Attribute attName='attValue' 

int tadaa = n.Count; 
+0

'XmlDocument' nicht verfügbar in Silverlight/Windows Phone 7 – AnthonyWJones

+0

Ich habe dies versucht, aber ich glaube nicht, dass Silverlight die' XmlNodeList' Funktion unterstützt – Jamie

+0

Hoppla, sorry Für die doppelte Kommentierung wäre ja die korrekte Syntax 'XDocument' und nicht' xmlDocument' – Jamie

Verwandte Themen