读书人

C#怎么使用xpath获取节点属性的最大值

发布时间: 2012-05-14 15:24:34 作者: rapoo

C#如何使用xpath获取节点属性的最大值?
<?xml version="1.0" encoding="utf-8"?>
<employees>
<employee1 EmpID="1" EmpName="洪石丹" EmpAge="25" EmpSex="男">
</employee1>
<employee1 EmpID="6" EmpName="黄鑫" EmpAge="21" EmpSex="男">
</employee1>
<employee1 EmpID="2" EmpName="覃园" EmpAge="22" EmpSex="男">
</employee1>
<employee1 EmpID="27" EmpName="袁岩岩" EmpAge="25" EmpSex="男">
</employee1>
<employee1 EmpID="5" EmpName="江冬梅" EmpAge="22" EmpSex="男">
</employee1>
<employee1 EmpID="22" EmpName="瞿路" EmpAge="23" EmpSex="女">
</employee1>
<employee1 EmpID="42" EmpName="陈建勤" EmpAge="24" EmpSex="男">
</employee1>
<employee1 EmpID="44" EmpName="陈" EmpAge="24" EmpSex="男">
</employee1>
<employee1 EmpID="45" EmpName="aa" EmpAge="20" EmpSex="女" />
</employees>

[解决办法]

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Xml.Linq;using System.Text;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            string xml = @"<employees>  <employee1 EmpID=""1"" EmpName=""洪石丹"" EmpAge=""25"" EmpSex=""男"">  </employee1>  <employee1 EmpID=""6"" EmpName=""黄鑫"" EmpAge=""21"" EmpSex=""男"">  </employee1>  <employee1 EmpID=""2"" EmpName=""覃园"" EmpAge=""22"" EmpSex=""男"">  </employee1>  <employee1 EmpID=""27"" EmpName=""袁岩岩"" EmpAge=""25"" EmpSex=""男"">  </employee1>  <employee1 EmpID=""5"" EmpName=""江冬梅"" EmpAge=""22"" EmpSex=""男"">  </employee1>  <employee1 EmpID=""22"" EmpName=""瞿路"" EmpAge=""23"" EmpSex=""女"">  </employee1>  <employee1 EmpID=""42"" EmpName=""陈建勤"" EmpAge=""24"" EmpSex=""男"">  </employee1>  <employee1 EmpID=""44"" EmpName=""陈"" EmpAge=""24"" EmpSex=""男"">  </employee1>  <employee1 EmpID=""45"" EmpName=""aa"" EmpAge=""20"" EmpSex=""女"" /></employees>";            var query = XElement.Parse(xml).Elements("employee1").Select(x => Convert.ToInt32(x.Attribute("EmpAge").Value)).Max();            Console.WriteLine(query);        }    }}
[解决办法]
顺便说下,如果你查询这么写:

C# code
var query = XElement.Parse(xml).Elements("employee1").OrderByDescending(x => Convert.ToInt32(x.Attribute("EmpAge").Value)).First(); 

读书人网 >C#

热点推荐