linq to xml中group by的应用

简介:
 

xml文档内容如下 

<?xml version="1.0" encoding="utf-8"?>
<users>
    <user>
    <id>003</id>
    <name>小张</name>
    <sex>female</sex>
    <age>30</age>
    <university>南大</university>
    <phone>13328981152</phone>
  </user>
  <user>
    <id>004</id>
    <name>xy</name>
    <sex>female</sex>
    <age>22</age>
    <university>一个大学</university>
    <phone>13328981152</phone>
  </user>
  <user>
    <id>005</id>
    <name>小樱</name>
    <sex>female</sex>
    <age>22</age>
    <university>南大</university>
    <phone>13328981152</phone>
  </user>
  <user>
    <id>006</id>
    <name>小赵</name>
    <sex>female</sex>
    <age>22</age>
    <university>南邮</university>
    <phone>13328981152</phone>
  </user>
  <user>
    <id>007</id>
    <name>小虎</name>
    <sex>female</sex>
    <age>22</age>
    <university>东南</university>
    <phone>13328981152</phone>
  </user>

 

        /// <summary>
        /// 按学校分组
        /// </summary>
        /// <returns></returns>
        public DataTable GroupBySchool()
        {
            List<ChartCount> listcount = new List<ChartCount>();
            doc = XDocument.Load(path);

            // 计数
            var users = (from u in doc.Element("users").Elements("user")
                       group u by u.Element("university").Value into g
                       select new
                       {
                           g.Key,
                           Num=g.Count()
                       });

            foreach (var user in users)
            {
                ChartCount cc = new ChartCount();
                cc.School = user.Num;
                cc.Count = user.Key;
                listcount.Add(cc);
            }
            return CollectionHelper.ToDataTable(listcount, null);

        }

 

那么我在分组的时候想要获得一些基本信息怎么办呢?

 

        /// <summary>
        /// 按学校分组
        /// </summary>
        /// <returns></returns>
        public DataTable GroupBySchool()
        {
            List<ChartCount> listcount = new List<ChartCount>();
            doc = XDocument.Load(path);

            // 计数
            var users = (from u in doc.Element("users").Elements("user")
                       group u by u.Element("university").Value into g
                       select new
                       {
                             Id=g.Select(u=>u.Element("id").Value),
                             Name=g.Select(u=>u.Element("name").Value),
                             Sex=g.Select(u=>u.Element("sex").Value),
                             Age=g.Select(u=>u.Element("age").Value),
                             School=g.Select(u=>u.Element("university").Value),
                             Phone=g.Select(u=>u.Element("phone").Value) 

                     });

            foreach (var user in users)
            {
                ChartCount cc = new ChartCount();
                cc.School = user.Num;
                cc.Count = user.Key;
                listcount.Add(cc);
            }
            return CollectionHelper.ToDataTable(listcount, null);

        }

目录
相关文章
|
3月前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
62 2
|
Android开发
【错误记录】Android 应用打包错误 ( Entry name ‘assets/xxx.xml‘ collided )
【错误记录】Android 应用打包错误 ( Entry name ‘assets/xxx.xml‘ collided )
1076 0
【错误记录】Android 应用打包错误 ( Entry name ‘assets/xxx.xml‘ collided )
|
8月前
|
XML 网络协议 Java
XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
XML Web服务是基于WSDL、SOAP、RDF和RSS等标准的网络应用程序组件技术。WSDL描述服务接口和消息格式,SOAP用于结构化信息交换,RDF描述网络资源,RSS则用于发布网站更新。Web服务特点是自包含、自描述,基于开放协议,可重用且能连接现有软件。WSDL文档包含`types`、`message`、`portType`和`binding`元素,定义服务操作和协议。SOAP协议规定消息格式,通过HTTP等传输。
574 1
|
8月前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
105 0
|
8月前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
117 0
|
XML 存储 消息中间件
XML DTD介绍以及应用
DTD介绍 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。 DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
75 0
|
XML JavaScript Java
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
300 0
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
|
XML Java 数据格式
spring学习6-使用xml方式实现spring基本应用
spring学习6-使用xml方式实现spring基本应用
154 0
spring学习6-使用xml方式实现spring基本应用
|
XML 开发框架 .NET
XML基础学习02&lt;linq to xml&gt;
XML基础学习02&lt;linq to xml&gt;
166 0
XML基础学习02&lt;linq to xml&gt;
|
XML 前端开发 Java
Spring MVC之基于java config无xml配置的web应用构建
前一篇博文讲了SpringMVC+web.xml的方式创建web应用,用过SpringBoot的童鞋都知道,早就没有xml什么事情了,其实Spring 3+, Servlet 3+的版本,就已经支持java config,不用再写xml;本篇将介绍下,如何利用java config取代xml配置
267 0
Spring MVC之基于java config无xml配置的web应用构建