使用XPathExpression的AddSort方法获得排序的Xml解析结果的代码
2014-02-13 23:39
651 查看
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using System.Xml.XPath; namespace ConsoleTestApp001 { class Program { static void Main(string[] args) { string xml = @"<?xml version='1.0'?> <folder id='A' type='none'> <fields> <field name='title'>Root</field> <field name='group'>z</field> </fields> <folder id='A3' type='book'> <fields> <field name='title'>c</field> <field name='group'>G-c</field> </fields> </folder> <folder id='A2' type='music'> <fields> <field name='title'>b</field> <field name='group'>G-b</field> </fields> </folder> <folder id='A1' type='image'> <fields> <field name='title'>a</field> <field name='group'>G-a</field> </fields> </folder> </folder>"; XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(xml)); reader.Read(); XPathDocument doc = new XPathDocument(reader); XPathNavigator nav = doc.CreateNavigator(); //Select all books by Jane Austen. XPathExpression expr; expr = nav.Compile("/folder/folder"); //Sort the selected books by title. expr.AddSort("fields/field[@name='title']", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Text); //Display the selection. XPathNodeIterator iterator = nav.Select(expr); while (iterator.MoveNext()) { XPathNavigator nav2 = iterator.Current.Clone(); string id = nav2.GetAttribute("id", ""); string type = nav2.GetAttribute("type", ""); XPathNavigator nav3 = nav2.SelectSingleNode("fields/field[@name='title']"); Console.WriteLine("id:{0}; type:{1}; title:{2}", id, type, nav3.Value); } Console.Read(); } } }
相关文章推荐
- 【已解决】Android中用DOM方式解析xml时使用getElementsByTagName去获得节点结果为空
- jdk7中Arrays.sort()和Collections.sort()排序方法使用注意
- C++ 排序函数 sort(),qsort()的使用方法
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- Android学习笔记---26_网络通信之资讯客户端,使用pull解析器,解析,从网络中获得的自定义xml文件
- Java集合对象的排序使用Collection.sort方法,先实现Comparable接口
- ie无法使用jquery解析xml的解决方法
- xml解析四种方法的代码实现
- 在Python中使用sort()方法进行排序的简单教程
- JS排序方法(sort,bubble,select,insert)代码汇总
- ajax返回的json内容进行排序使用sort()方法实现
- iPhone HTTP获得XML并使用GDataXML解析
- Java开源-Jdom对XML解析方法的使用指南
- 常见排序的原理和C++实现(一)——STL库中sort的使用方法
- 在一个有返回值的方法里使用了子线程,如何返回子线程中的值,如下代码中,我在子线程获取到了address的值,但是这个方法的返回结果是空,该如何解决?
- js数组排序 reverse()和sort()方法的使用 复制数组slice()和克隆数组concat()
- 在java中使用dom4j解析xml(示例代码)
- Php Xml解析之DOMDocument使用方法浅解
- 使用Xml类下的newPullParser ()、newSerializer ()方法,解析xml数据和序列化生成xml数据
- 数组排序Arrays.sort方法的使用例子