xml中定位到任一节点
来源:互联网 发布:linux虚拟机上网 编辑:程序博客网 时间:2024/05/23 18:37
程序中如用到xml,一般很需要根据某一条件定位到xml的某一节点
XmlDocument xml = new XmlDocument()
经常会用到 xml.SelectSingleNode(xpath)方法
其中关键就是xpath即xml节点的路径的写法,只要xpath写的正确,就可以轻松定位到需要的节点
常用的运算符和特殊字符为:
/ 子运算符,即下一级
// 任意深度的元素,如果写在开头,则从根节点递归向下
[] 匹配符,就是匹配某一元素条件的
@ 属性名的前缀
下面一个例子演示用法(假设xml层级很多,无法确定为几层)
有一xml文件
<root title="学校" >
<node title="班级-1">
<node title="学生A" >
<sex title="男" />
</node>
<node title="学生B" >
</node>
</node>
<node title="班级-2">
<node title="学生C" sex=”女” >
</node>
<node title="学生D" >
</node>
</node>
</root>
1.如要取得性别为“男“的那个学生的节点
则:xml.SelectSingleNode("root//node[sex='男']")
该方法指从root节点下查找node节点下sex元素为“男“的node节点 ,返回<node title="学生A" >节点元素
或者xml.SelectSingleNode("//node[sex='男']")
该方法默认从根节点下查找node节点下sex元素为“男“的node节点 ,返回<node title="学生A" >节点元素
2.如要取得性别为“女“的学生节点
则:xml.SelectSingleNode("root//node[@sex='女']")
该方法指从root节点下查找node节点下sex属性为“女“的node节点 ,返回<node title="学生C" sex=”女” >
节点元素
或者xml.SelectSingleNode("//node[@sex='女']")
该方法默认从根节点下查找node节点下sex属性为“女“的node节点 ,返回<node title="学生C" sex=”女” >
节点元素
3.如想获取root节点下一次所有node元素
则:xml.SelectNodes("root/node")
返回的是 <node title="班级-1">, <node title="班级-2">
4.如想获取root节点下任一深度所有node元素
则:xml.SelectNodes("root//node")
返回的是所有的node节点
5.如想获取root节点下下一级的所有node元素
则:xml.SelectNodes("root/*/node")
返回的是 <node title="学生A" >, <node title="学生B" >, <node title="学生C" sex=”女” >
,<node title="学生D" >
6.如果是一级一级的往下获取节点
首先XmlNode node = xml.SelectSingleNode("root/node[@title='班级-1']")
返回的是
<node title="班级-1">
<node title="学生A" >
<sex title="男" />
</node>
<node title="学生B" >
</node>
</node>
此时再次想获取班级下面的学生
node.SelectNodes("node") 不需要在node前加"/",因为它是在该节点的innerXML中找的
它的innerXML只包含
<node title="学生A" >
<sex title="男" />
</node>
<node title="学生B" >
</node>
故此,返回
<node title="学生A" >
<sex title="男" />
</node>
<node title="学生B" >
</node>
以上只是几个简单的例子,更多的例子参考
http://msdn.microsoft.com/zh-cn/ms256122.aspx
- xml中定位到任一节点
- 在二元树中找出和为某一值的所有路径(根节点到任一节点的路径)
- 工作流引擎 Activiti 中获取下一节点
- 工作流引擎 Activiti 中获取下一节点
- XML文件遍历实现中的下一节点获取函数--近似深度优先
- Oracle RAC一节点系统重做问题
- Oracle RAC一节点系统重做问题
- activiti工作流获取下一节点实例
- 编程一次遍历搜索到中间节点,如果节点数为偶数,取中间两节点中前一节点
- web.xml中注意点
- XML中定位字段修改、读取[原创]
- 插入、删除、修改指向下一节点和下下一节点链表
- 二叉树的实现&&递归和非递归方式前序、中序、后续遍历&&发现一个节点中序遍历的下一节点
- fcTreeView任何情况下只有一节点被选中
- 剑指offer_二叉树---二叉树的下一节点
- java实现 二叉树中序遍历的下一节点
- javascript之DOM(一节点类型Node)
- Activiti工作流会签与获取下一节点任务信息
- 从网上转的,看着老三俗。但是挺逗的,没别的意思
- VS2008C#调用MATLAB进行混合编程
- 二次开发目录
- 顺序栈
- zoj 2022 Factorial(纠结!)(已理解)
- xml中定位到任一节点
- 累
- Android Property System
- 1.2 ECMS(帝国CMS)二次开发1 – 基本方式概述
- 可伸缩性, 可用性和稳定性模式
- hibernate 关联关系配置
- AIX syslog 日志输出配置 syslogd
- 几个好网站~
- LR 8.1对IBM HTTP SERVER服务的监控环境