知识大全 XPathExpression类对XML进行排序

Posted 表达式

篇首语:满堂花醉三千客,一剑霜寒十四洲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 XPathExpression类对XML进行排序相关的知识,希望对你有一定的参考价值。

XPathExpression类对XML进行排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  如果你曾经使用过XSLT 当你需要对XML文档中的字符串或数字进行排序时 你可能会习惯于使用xsl:sort元素 在进行xsl:for each进行循环或用xsl:apply templates调用模板时 这个元素的功能很方便 而且简单 然而 在某些情况下 你只是想简单对XML文档进行简单的排序和显示数据 那么xsl:sort就会大大降低计算机性能 下面就解释一下 如何在不使用xsl:sort元素的情况下 实现对XML数据进行排序

  在 net平台下 要完成这样的工作非常轻松 我们只需使用System Xml XPath名字空间里的几个类即可 如XPathNavigator和XPathExpression 这些类相当于XSLT中XPath的功能 允许你在XML文档中进行遍历 也可以进行排序的操作 下面是对System Xml XPath名字空间中的类进行的简单的描述

  XPathDocument 进行XML文档处理时 提供一个快速 有效的 只读的Cache功能 在进行XSLT转换时 推荐使用该类

  XPathException 当处理XPath产生错误时 抛出一个例外

  XPathExpression 保存在调用XPathNavigator的Compile()方法时生成的 经过编译的XPath表达式

  XPathNavigator 提供一个指针模型 供我们读取支持IXPathNavigable接口的所保存的任何类型的数据

  XPathNodeIterator 遍历节点集合

  由于要详细讨论每一个类的细节 超出了我们主题的范围 我们只讨论与排序有关的那些类的使用 首先 我们需要创建一个XPathNavigator对象 以便建立XPath表达式来完成我们的排序功能 由于这个类是一个抽象类 我们不能这样直接创建它

  XPathNavigator nav = new XPathNavigator();

  我们必须使用XmlDocument XmlDataDocument或XPathDocument的CreateNavigator()方法来创建

XPathDocument doc = new XPathDocument(Server MapPath( customers xml )); XPathNavigator nav = doc CreateNavigator();

  创建了XPathNavigator对象后 我们就可以使用Compile()方法编译一个XPath表达式 这个方法返回一个XPathExpression 类 它封装编译过的表达式 同时允许我们进行排序 下面是一个使用XPathNavigator类创建一个编译过的XPath表达式的例子

  XPathExpression exp = nav Compile(xpath);

  我们通过使用XPathExpression对象的AddSort()方法实现排序的功能 这个方法有两个重载的方式

 public abstract void AddSort(object expr IComparer parer);  public abstract void AddSort(   object expr    XmlSortOrder order    XmlCaseOrder caseOrder    string lang    XmlDataType dataType );

  第一个方法允许我们使用自定义的排序表达式 第二个方法有 个参数 分别是要排序的对象 排序顺序 条件顺序 语言类别和数据类型 下面就是使用该方法进行排序的例子

  exp AddSort( text() XmlSortOrder Ascending XmlCaseOrder None XmlDataType Text);

  一旦我们对XPath表达式添加了排序的功能

我们就可以调用XPathNavigator对象的Select()方法 并把编译过的XPath表达式作为参数 Select()方法返回一个XPathNodeIterator对象 我们可以使用它遍历我们所选择的节点

  下面就是用C#编写的实现排序功能的所有代码

cha138/Article/program/net/201311/14501

相关参考

知识大全 hbase 的存储是排序存储的吗

hbase的存储是排序存储的吗hbase是非关系型的,你可以把xml父子节点解析的结果存入hbasehbasebigdecimal怎么存储的果用户输入5,那么number就等于5.0。变量来源于数学,

知识大全 用PHP与XML联手进行网站编程

用PHP与XML联手进行网站编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一小序 

知识大全 XML数据进行加密和大小写转换

XML数据进行加密和大小写转换  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 用PHP与XML联手进行网站编程[1]

用PHP与XML联手进行网站编程[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一小序  

为什么说亚硝胺类对人类有一定的危害性?

亚硝胺类是引起人类癌症的主要致癌物之一。在食物的种植、加工处理、贮藏以及烹调等环节中处理不当,就有可能产生亚硝胺类。常见的有:  ·咸鱼、腌菜中含有较高的硝酸盐与亚硝酸盐,两者可结合形成亚硝胺。  ·

知识大全 用PHP与XML联手进行网站编程[2]

用PHP与XML联手进行网站编程[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  五案例解析

知识大全 对XML文档进行添、删、改、查的程序

对XML文档进行添、删、改、查的程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 利用 XSLT 对 XML 进行缩进格式化处理

利用XSLT对XML进行缩进格式化处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在CSDN

知识大全 使用 XML Web services 进行 Web 编程

使用XMLWebservices进行Web编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  X

知识大全 交换排序之冒泡排序

  交换排序的基本思想两两比较待排序记录的关键字发现两个记录的次序相反时即进行交换直到没有反序的记录为止 冒泡排序  冒泡排序将当前未排序的记录自上而下依次对相邻的两个记录进行比较若为逆序则