如何计算XML文档中特定节点的子节点
本文关键字:节点 子节点 文档 XML 何计算 计算 | 更新日期: 2023-09-27 18:23:35
我对c#更熟悉。我必须解析xml文档,并且必须计算子节点的特定节点。
例如:
<Root>
<Id/>
<EmployeeList>
<Employee>
<Id/>
<EmpName/>
</Employee>
<Employee>
<Id/>
<EmpName/>
</Employee>
<Employee>
<Id/>
<EmpName/>
</Employee>
</EmployeeList>
</Root>
在这个xml中,如何计算"Employee"节点??
如何使用C#中的XmlDocument类解析并获得解决方案?
int Count = doc.SelectNodes("Employee").Count;
您可以使用XPath
var xdoc = XDocument.Load(path_to_xml);
var employeeCount = (double)xdoc.XPathEvaluate("count(//Employee)");
使用linq到xml可以完成:
XElement xElement = XElement.Parse(xml);
int count = xElement.Descendants("Employee").Count();
这假设您的xml位于字符串xml中。
XmlDocument doc = new XmlDocument();
doc.LoadXml(XmlString);
XmlNodeList list = doc.SelectNodes("Root/EmployeeList/Employee");
int numEmployees = list.Count;
如果xml来自文件,请使用
doc.Load(PathToXmlFile);
我强烈建议使用System.Xml.Linq
库。它比你想用的要好得多。一旦您加载了XDocument,您就可以获得根节点并按照以下步骤执行操作:
//Parse the XML into an XDocument
int count = 0;
foreach(XElement e in RootNode.Element("EmployeeList").Elements("Employee"))
count++;
这段代码并不准确,但您可以在这里查找更复杂的示例:http://broadcast.oreilly.com/2010/10/understanding-c-simple-linq-to.html