C#使用xpath查找xml节点信息
2016-04-27 21:52
519 查看
Xpath是功能很强大的,但是也是相对比较复杂的一门技术,最好还是到博客园上面去专门找一些专业的帖子来看一看,下面是一些简单的Xpath语法和一个实例,提供给你参考一下。
xml示例:
说明:如果XPath的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来
1.选择第一个role的roleName
示例:/roles/role[1]/roleName 说明:xml中的下标是从1开始的
2.选择属性order='2'的角色的节点
示例:/roles/role[@order='2'] 说明:@order表示属性
3.选择第一个role的order的值
示例:/roles/role[1]/@order
总结:上面讲的都是xpath的语法,但是在C#中怎么使用呢,具体代码如下:
xml示例:
<?xml version="1.0" encoding="utf-8" ?> <roles> <role order="1"> <roleId>1</roleId> <roleName>一般用户</roleName> </role> <role order="3"> <roleId>2</roleId> <roleName>测试用户</roleName> </role> <role order="2"> <roleId>3</roleId> <roleName>中心管理员</roleName> </role> <role order="4"> <roleId>4</roleId> <roleName>系统管理员</roleName> </role> </roles>
说明:如果XPath的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来
1.选择第一个role的roleName
示例:/roles/role[1]/roleName 说明:xml中的下标是从1开始的
2.选择属性order='2'的角色的节点
示例:/roles/role[@order='2'] 说明:@order表示属性
3.选择第一个role的order的值
示例:/roles/role[1]/@order
总结:上面讲的都是xpath的语法,但是在C#中怎么使用呢,具体代码如下:
XmlDocument xml = new XmlDocument(); //实例化一个XmlDocument xml.Load("app.xml"); //根据路径加载一个xml文档 //xml中的索引从1开始的 XmlNode node=xml.SelectSingleNode("/roles/role[1]/@order"); 根据xpath返回具体的一个节点,如果相匹配的有多个节点则返回第一个节点,SelectNodes()用语获得多个节点的集合 MessageBox.Show(node.InnerText); //读取该节点的相关信息
相关文章推荐
- C#验证中文
- c# 如何筛选datatable
- C# Socket流数据大小端读写封装
- [C#反射]C#中的反射解析及使用.
- C#实现局域网内远程开机
- C# 处理带Emoji表情的的字符串
- C#国际化解决方案策略
- C#OOP之七 多态的学习和使用
- C#OOP之七 多态的学习和使用
- C#OOP之七 多态的学习和使用
- C#OOP之六 构造函数和析构函数
- C#OOP之六 构造函数和析构函数
- C#OOP之六 构造函数和析构函数
- C#小练习
- C#语言中的小知识点
- C# 事务异常TransactionScope处理
- C#反射
- 全双工音频播放器在c#中使用waveIn / waveOut api
- 使用C#实现顺序队列
- c#操作IIS站点