我想知道是否可以计算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++;
}
}
谢谢!
答案 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;