如何在ASP.NET的C#中解析XML获取entry id的数量?
获取XML中entry id数量的C#实现方法
嘿,我来帮你搞定这个统计XML中entry id数量的需求!你给出的XML里确实有5个带id的entry元素,这里给你两种实用的C#实现方式,任选其一就行:
首先先把你的XML内容放在这里方便参考:
<entry_list version="1.0"> <entry id="cipher[1]">...</entry> <entry id="cipher[2]">...</entry> <entry id="cypher">...</entry> <entry id="substitution cipher">...</entry> <entry id="transposition cipher">...</entry> </entry_list>
方法一:使用LINQ to XML(XDocument)
这是比较现代、简洁的实现方式,代码可读性高,推荐优先使用:
using System; using System.Xml.Linq; class Program { static void Main() { // 可以替换成从文件加载:XDocument.Load("你的XML文件路径") string xmlContent = @"<entry_list version=""1.0""> <entry id=""cipher[1]"">...</entry> <entry id=""cipher[2]"">...</entry> <entry id=""cypher"">...</entry> <entry id=""substitution cipher"">...</entry> <entry id=""transposition cipher"">...</entry> </entry_list>"; XDocument xmlDoc = XDocument.Parse(xmlContent); // 统计所有带id属性的entry元素数量 int entryIdCount = xmlDoc.Descendants("entry") .Where(entry => entry.Attribute("id") != null) .Count(); Console.WriteLine($"entry id的数量是:{entryIdCount}"); // 输出结果:5 } }
小提示:如果能确定所有<entry>元素都带有id属性,那可以简化成xmlDoc.Descendants("entry").Count(),省去筛选步骤。
方法二:使用XmlDocument(传统DOM解析)
如果你习惯使用传统的XML DOM API,这个方法也很可靠:
using System; using System.Xml; class Program { static void Main() { // 可以替换成从文件加载:doc.Load("你的XML文件路径") string xmlContent = @"<entry_list version=""1.0""> <entry id=""cipher[1]"">...</entry> <entry id=""cipher[2]"">...</entry> <entry id=""cypher"">...</entry> <entry id=""substitution cipher"">...</entry> <entry id=""transposition cipher"">...</entry> </entry_list>"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlContent); // 用XPath表达式选择所有带id属性的entry元素 XmlNodeList entryNodes = xmlDoc.SelectNodes("//entry[@id]"); int entryIdCount = entryNodes.Count; Console.WriteLine($"entry id的数量是:{entryIdCount}"); // 输出结果:5 } }
这里的//entry[@id]是XPath语法,意思是匹配XML中所有层级下带有id属性的<entry>元素,非常直观。
内容的提问来源于stack exchange,提问作者iamal
相关产品推荐
相关产品推荐

