Linq to XML详细操作

                XElement root = new XElement("root",
                new object[]
                {
                    new XElement("Stu",
                        new object[]
                        {
                            new XAttribute("Num","093431237"),
                            new XAttribute("Name","John"),
                            new XAttribute("Age",18),
                            new XElement("Math",90),
                            new XElement("English",88),
                            new XElement("Chinese",79)

                        }
                    ),
                    new XElement("Stu",
                        new object[]
                        {
                            new XAttribute("Num","093431234"),
                            new XAttribute("Name","Peter"),
                            new XAttribute("Age",18),
                            new XElement("Math",60),
                            new XElement("English",88),
                            new XElement("Chinese",56)

                        }
                    ),
                    new XElement("Stu",
                        new object[]
                        {
                            new XAttribute("Num","093431232"),
                            new XAttribute("Name","Mark"),
                            new XAttribute("Age",20),
                            new XElement("Math",90),
                            new XElement("English",38),
                            new XElement("Chinese",79)

                        }
                    ),
                    new XElement("Stu",
                        new object[]
                        {
                            new XAttribute("Num","093431238"),
                            new XAttribute("Name","Lucy"),
                            new XAttribute("Age",19),
                            new XElement("Math",90),
                            new XElement("English",58),
                            new XElement("Chinese",79)

                        }
                    ),
                    new XElement("Stu",
                        new object[]
                        {
                            new XAttribute("Num","093431239"),
                            new XAttribute("Name","Cathy"),
                            new XAttribute("Age",19),
                            new XElement("Math",60),
                            new XElement("English",88),
                            new XElement("Chinese",89)

                        }
                    ),
                    new XElement("Stu",
                        new object[]
                        {
                            new XAttribute("Num","093431240"),
                            new XAttribute("Name","Cloie"),
                            new XAttribute("Age",20),
                            new XElement("Math",50),
                            new XElement("English",78),
                            new XElement("Chinese",99),
                            new XElement("Chemistry",99)

                        }
                    )


                }
                );
            Console.WriteLine(root);
            Console.WriteLine("Linq查询");
            var query = from val in root.Elements() where val.Attribute("Num").Value == "093431237" || val.Attribute("Name").Value == "Peter" select val;
            Console.WriteLine(query.Count());
            foreach (var item in query)
            {
                Console.WriteLine(item);
            }

            var query2 = from val in root.Elements("root") select val;
            Console.WriteLine("query2查询结果:" + query2.Count());
            var query3 = from val in root.Elements("Stu") select val;
            Console.WriteLine("query3查询结果:" + query3.Count());
            foreach (var item in query3)
            {
                Console.WriteLine(item.Attribute("Num").Name + ":" + item.Attribute("Num").Value + "--" + item.Attribute("Name").Name + ":" + item.Attribute("Name").Value);
                Console.WriteLine(item.Element("Math").Name + ":" + item.Element("Math").Value);
                Console.WriteLine(item.Element("English").Name + ":" + item.Element("English").Value);
                Console.WriteLine(item.Element("Chinese").Name + ":" + item.Element("Chinese").Value);
            }
            Console.WriteLine("查询结果query4");
            var query4 = from val in root.Elements("Stu") select new { name = val.Attribute("Name").Value, num = val.Attribute("Num").Value };
            foreach (var item in query4)
            {
                Console.WriteLine(item);
            }
            var query5 = from val in root.Elements("Stu") where int.Parse(val.Attribute("Age").Value) == 18 select val;
            foreach (var item in query5)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("查询结果query6:");
            var query6 = from val in root.Elements("Stu")
                         from val2 in val.Elements()
                         where val2.Name.LocalName == "Math"
                         select new { name = val.Attribute("Name").Value, math = val2.Value };
            foreach (var item in query6)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("查询结果query7:");
            var query7 = from val in root.Elements("Stu") where int.Parse(val.Element("Math").Value) < 90 select val;
            foreach (var item in query7)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("查询结果query8排序操作:");
            var query8 = from val in root.Elements("Stu") orderby val.Attribute("Age").Value descending select val;
            foreach (var item in query8)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("查询结果query9按数学成绩降序操作:");
            var query9 = from val in root.Elements("Stu") orderby val.Element("Math").Value descending select new { name = val.Attribute("Name").Value, Math = val.Element("Math").Value };
            foreach (var item in query9)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("查询结果query10,增加where条件的排序操作");
            var query10 = from val in root.Elements("Stu") where int.Parse(val.Attribute("Age").Value) == 18 orderby val.Element("Math").Value descending select new { Name = val.Attribute("Name").Value, Age = val.Attribute("Age").Value, Math = val.Element("Math").Value };
            foreach (var item in query10)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("查询结果query11");
            var query11 = from val in root.Elements("Stu") where val.ElementsAfterSelf("Stu").Count() > 4 select val;
            foreach (var item in query11)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("查询结构query12");
            var query12 = from val in root.Elements("Stu") where val.ElementsBeforeSelf("Stu").Count() > 4 select val;
            foreach (var item in query12)
            {
                Console.WriteLine(item);
            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值