根据XML数据的Index 来进行排序
方法一:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace XMLOrderby
{
class Program
{
static void Main(string[] args)
{
string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
<Configuration>
<ModulePermit>
<Mast Code=""S001"" Name=""系统维护"" Index=""1"">
<Sub Code=""S00101"" Name=""地区管理"" Index=""1""></Sub>
<Sub Code=""S00102"" Name=""管理员管理"" Index=""2""></Sub>
</Mast>
<Mast Code=""S002"" Name=""业务管理"" Index=""2"">
<Sub Code=""S00201"" Name=""收货管理"" Index=""2""></Sub>
<Sub Code=""S00202"" Name=""发货管理"" Index=""2""></Sub>
<Sub Code=""S00203"" Name=""报表管理"" Index=""3""></Sub>
</Mast>
</ModulePermit>
</Configuration>";
XDocument doc = XDocument.Parse(xml);
var Query = from D in doc.Element("Configuration").Element("ModulePermit").DescendantNodes()
orderby XElement.Parse(D.ToString()).Attribute("Index").Value
select new
{
Code = XElement.Parse(D.ToString()).Attribute("Code").Value,
Name = XElement.Parse(D.ToString()).Attribute("Code").Value,
Index = XElement.Parse(D.ToString()).Attribute("Index").Value
};
foreach (var v in Query)
{
Console.WriteLine("Code={0} Name={1} Inex={2}", v.Code, v.Name, v.Index);
}
Console.ReadKey();
}
}
}
方法二:
XDocument doc = XDocument.Parse(xml);
var Query = from D in doc.Element("Configuration").Element("ModulePermit").DescendantNodes()
let Index = XElement.Parse(D.ToString()).Attribute("Index").Value
let Code = XElement.Parse(D.ToString()).Attribute("Code").Value
orderby Index, Code
select new
{
Code = Code,
Name = XElement.Parse(D.ToString()).Attribute("Name").Value,
Index = Index
};

被折叠的 条评论
为什么被折叠?



