对XML实现自定义、多字段排序
2008-03-11 11:45
501 查看
对Xml排序,除了使用XSLT之外,还可以使用XPathExpression类,但这些类一般情况下只支持数字和字符串类型的数据类型排序。要实现按照自己的排序方法排序,需要自己进行定义。AddSort 方法使用户能够按对象的数据类型(而不是按字符串或数字)将对象排序。IComparer 对象提供了 Compare 方法的实现,该实现支持按用户定义的类进行排序。
下面的例子就是实现自定义排序,并且支持多字段排序的一个例子。首先定义一个自定义对象,设置排序规则,然后使用XPathExpression.AddSort (Object, IComparer)方法进行排序。
a.xml文件
{E4FCC019-CF62-4CA8-B9DA-184D19B62FBB}
/Portal/newpage/100063AF50C.vbs
100063AF50C.vbs
/Portal/newpage/
urn:schemas-mengxianhui-cn:webpart
2004-11-05 09:13:58
新闻页面
{661E575E-92A7-485C-B6B6-123BCE8377FC}
/Documents/home/images/shijian.gif
shijian.gif
urn:schemas-mengxianhui-cn:basedocument
2005-10-26 17:03:39
9999-10-25 11:57:16
shijian
2
{661E575E-92A7-485C-B6B6-123BCE8377FC}
/Documents/home/images/shijian.gif
shijian.gif
urn:schemas-mengxianhui-cn:basedocument
2005-10-26 17:03:39
2000-10-25 11:57:16
孟子
2
{661E575E-92A7-485C-B6B6-123BCE8377FC}
/Documents/home/images/shijian.gif
shijian.gif
urn:schemas-mengxianhui-cn:basedocument
2005-10-26 17:03:39
2008-10-25 11:57:16
孟宪会
2
{C023513E-8877-4D63-8F11-5C1DB5CE6384}
/Documents/home/images/jiaoshizhijia.gif
jiaoshizhijia.gif
urn:schemas-mengxianhui-cn:basedocument
2003-10-26 17:03:39
2002-10-22 16:38:02
jiaoshizhijia
9
{836BF9A3-32AE-48A5-B2AC-7525B9CCCEB3}
/Documents/home/images/leftbg.gif
leftbg.gif
urn:schemas-mengxianhui-cn:basedocument
2004-10-26 17:03:39
2008-10-22 16:04:01
leftbg
65
{DECED835-84BC-4F15-860D-658AC14A51AE}
/Documents/home/images/zhuce.gif
zhuce.gif
urn:schemas-mengxianhui-cn:basedocument
2004-10-26 17:03:39
2002-10-22 16:01:07
zhuce
32
{EF9B16D0-DB39-4034-B02A-B270C0436408}
/Documents/home/images/bbs.gif
bbs.gif
urn:schemas-mengxianhui-cn:basedocument
2004-10-26 17:03:39
2005-10-22 16:01:03
bbs
4
{E105440A-1F58-41E4-A5A4-1194C09B8728}
/Documents/home/images/gonggao.gif
gonggao.gif
urn:schemas-mengxianhui-cn:basedocument
2004-10-26 17:03:39
2003-10-22 15:59:38
gonggao
12
SortXml.aspx
<%@ Page Language="C#" %>
在使用 AddSort 方法时需要考虑的重要说明:
添加排序的顺序提供排序关键字的使用顺序。
如果 XPathExpression 或排序关键字需要命名空间解析,则必须使用 SetContext 方法为命名空间解析提供 XmlNamespaceManager。
在调用 SetContext 方法时,所有排序规则都被删除。若要保留排序规则,请在调用 AddSort 方法前调用 SetContext 方法。
如果 XPathExpression 不包含前缀,则认为命名空间 URI(统一资源标识符)为空命名空间。如果您的 XML 中包含默认命名空间,则仍须使用 SetContext 方法,并提供包含前缀和命名空间 URI 的 XmlNamespaceManager 以处理默认命名空间。
相关文章:
在XSLT中实现按日期排序
使用XPathExpression类对XML进行排序
下面的例子就是实现自定义排序,并且支持多字段排序的一个例子。首先定义一个自定义对象,设置排序规则,然后使用XPathExpression.AddSort (Object, IComparer)方法进行排序。
a.xml文件
<%@ Page Language="C#" %>
在使用 AddSort 方法时需要考虑的重要说明:
添加排序的顺序提供排序关键字的使用顺序。
如果 XPathExpression 或排序关键字需要命名空间解析,则必须使用 SetContext 方法为命名空间解析提供 XmlNamespaceManager。
在调用 SetContext 方法时,所有排序规则都被删除。若要保留排序规则,请在调用 AddSort 方法前调用 SetContext 方法。
如果 XPathExpression 不包含前缀,则认为命名空间 URI(统一资源标识符)为空命名空间。如果您的 XML 中包含默认命名空间,则仍须使用 SetContext 方法,并提供包含前缀和命名空间 URI 的 XmlNamespaceManager 以处理默认命名空间。
相关文章:
在XSLT中实现按日期排序
使用XPathExpression类对XML进行排序
相关文章推荐
- 对XML实现自定义、多字段排序
- 对XML实现自定义、多字段排序
- MySQL 按指定字段自定义列表排序的实现
- jquery DataTables插件自定义分页 字段排序 ajax实现
- gridview自定义绑定字段实现排序功能
- java自定义注解实现对象到xml配置的转换
- 对于集合中的自定义对象使用collections.sort 进行排序,需要实现compartor接口
- List集合实现自定义排序
- EVA:自定义字段实现
- SQL字符型字段按数字型字段排序实现方法(转)
- EasyUI扩展——自定义列排序匹配字段
- orcale实现自定义优先级排序的SQL
- DEV控件自定义排序实现
- BIEE11G实现自定义列排序规则
- STL list(链表)自定义结构体实现排序
- android中通过自定义xml实现你需要的shape效果 xml属性配置
- salesforce 零基础学习(六十三)Comparable实现Object列表数据的自定义排序
- 【JAVA】实现注解拼接SQL+字段进行排序
- java Collections.sort()实现List排序的默认方法和自定义方法
- 浅谈Java的Comparator接口实现自定义排序Arrays.sort()