计算XML文档中的元素数量

时间:2010-11-25 19:55:19

标签: c# xml silverlight windows-phone-7

我想知道是否可以计算XML文档中的元素数量,最好能够使用与where (string)query.Attribute("attName") == att类似的东西来装配。

据我所知,我尝试了以下但不幸的是,我似乎无法使其发挥作用。

                        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++;
                            }                              
                        }

谢谢!

3 个答案:

答案 0 :(得分:10)

鉴于doc是XDocument

的实例
doc.Root.Descendants().Count(d => (string)d.Attribute("attName") == "value");

答案 1 :(得分:0)

这可能是使用XPath的一个很好的应用程序。

http://support.microsoft.com/kb/308333/en-us

xpath可以是“count(// * [@ attName ='attValue'])”。

答案 2 :(得分: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;