如何使用C#和WPF通过编程方式计算父XML节点中的子XML节点数量?
我编写了一个WPF应用程序,它是两级主细节,并使用XML文件作为数据源。下面我展示了这个XML文件的内容。此文件放在项目中包含的数据文件夹中,文件本身也包含在项目中。此文件的名称为Books.xml如何使用C#和WPF通过编程方式计算父XML节点中的子XML节点数量?,c#,xml,wpf,xaml,C#,Xml,Wpf,Xaml,我编写了一个WPF应用程序,它是两级主细节,并使用XML文件作为数据源。下面我展示了这个XML文件的内容。此文件放在项目中包含的数据文件夹中,文件本身也包含在项目中。此文件的名称为Books.xml <?xml version="1.0" encoding="utf-8" ?> <Books xmlns=""> <Category name="Computer Programming"> <Book> <Author&
<?xml version="1.0" encoding="utf-8" ?>
<Books xmlns="">
<Category name="Computer Programming">
<Book>
<Author>H. Schildt</Author>
<Title>C# 4.0 The Complete Reference</Title>
</Book>
</Category>
<Category name="Art Editions">
<Book>
<Author>M. Cervantes</Author>
<Title>The Ingenious Gentleman Don Quixote of La Mancha </Title>
</Book>
<Book>
<Author>P. Ronsard</Author>
<Title>Les Amours</Title>
</Book>
</Category>
</Books>
希尔德
C#4.0完整参考
塞万提斯先生
拉曼查的天才绅士唐吉诃德
龙沙
爱情
我需要计算每个类别节点中图书节点的数量,并存储结果。如何实现这一点?您可以使用LINQ to XML实现这一点,例如:
var doc = XDocument.Parse("put_path_to_xml_file_here.xml");
//loop through all <Category>
foreach (var category in doc.Root.Elements("Category"))
{
//count <Book> elements within current <Category> element
var numberOfBooks = category.Elements("Book").Count();
//print the category name and the number of book elements
Console.WriteLine((string)category.Attribute("name") + " : " + numberOfBooks);
}
var doc=XDocument.Parse(“将路径放在xml文件中”\u here.xml”);
//循环所有
foreach(doc.Root.Elements(“类别”)中的变量类别)
{
//对当前元素中的元素进行计数
var numberOfBooks=category.Elements(“Book”).Count();
//打印类别名称和书籍元素数
Console.WriteLine((string)category.Attribute(“name”)+:“+numberOfBooks);
}
为什么不使用xmldocument将项目加载到视图模型中,然后简单地计算您拥有的元素?这比在xaml中执行要容易得多。。。您还可以将xml反序列化为列表,然后简单地使用list.Count.Thank,Amit。但是我的应用程序不是MVVM,所以我没有viewmodel。我是XML的新手,我不知道如何在列表实例中反序列化它。伙计们,帮帮我!我真的迷路了。非常感谢你,哈。你帮了我,不客气。我希望您可以从这个基本示例开始,利用您在LINQ到XML方面的知识,不要忘记接受答案。抽出你的时间来读这篇文章。请成为合作论坛成员。谢谢