Xml中SelectSingleNode方法中的xpath用法

最常见的XML数据类型有:Element, Attribute,Comment, Text.Element, 指形如<Name>Tom<Name>的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.Attribute, 指在<Employee >中的粗体部分。Comment,指形如:<!-- my comment --> 的节点。Text,指在<Name>Tom<Name>的粗体部分。在XML中,可以用XmlNode对象来参照各种XML数据类型。2.1 查询已知绝对路径的节点(集)objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee”)或者objNodeList = objNode.SelectNodes(“/Company/Department/Employees/Employee”)以上两种方法可返回一个NodeList对象,如果要返回单个节点可使用SelectSingleNode方法,该方法如果查询到一个或多个节点,返回第一个节点;如果没有查询的任何节点返回 Nothing。例如:objNode = objNode.SelectSingleNode(“/Company/Department/Employees/Employee”)If Not (objNode is Nothing) then‘- Do processEnd If2.2 查询已知相对路径的节点(集)可使用类似于文件路径的相对路径的方式来查询XML的数据objNode = objDoc.SelectSingleNode(“Company/Department”)objNodeList = objNode.SelectNodes(“../Department)objNode = objNode.SelectNode(“Employees/Employee”)2.3 查询已知元素名的节点(集)在使用不规则的层次文档时,由于不知道中间层次的元素名,可使用//符号来越过中间的节点,查询其子,孙或多层次下的其他所有元素。例如:objNodeList = objDoc.SelectNodes(“Company//Employee”)2.4 查询属性(attribute)节点以上的各种方法都返回元素(element)节点(集),返回属性(attribute),只需要采用相应的方法,在属性名前加一个@符号即可,例如:objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee/@id”)objNodeList = objDoc.SelectNodes(“Company//@id”)2.5 查询Text节点使用text()来获取Text节点。objNode = objDoc.SelectSingleNode(“Company/Department/Deparmt_Name/text()”)2.6 查询特定条件的节点使用[]符号来查询特定条件的节点。例如:a. 返回id号为 10102的Employee节点objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee[@id=’10102’]”)b. 返回Name为Zhang Qi的Name 节点objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’Zhang Qi’]”)c. 返回部门含有职员22345的部门名称节点objNode = objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name")2.7 查询多重模式的节点使用 | 符号可以获得多重模式的节点。例如:objNodeList = objDoc.SelectNodes(“Company/Department/Department_Name | Company/Department/Manager”)2.8 查询任意子节点使用*符号可以返回当前节点的所有子节点。objNodeList = objDoc.SelectNodes(“Company/*/Manager)或者objNodeList = objNode.ChildNodes3 XML数据的编辑3.1 增加一个元素的属性(attribute)节点Dim objNodeAttr As XmlNodeobjNodeAttr = objDoc.CreateAttribute("id", Nothing)objNodeAttr.InnerXml = "101"objNode.Attributes.Append(objNodeAttr)3.2 删除一个元素的属性objNode.Attributes.Remove(objNodeAttr)3.3 增加一个子元素(Element)Dim objNodeChild As XmlNodeobjNodeChild = objDoc.CreateElement(Nothing, "ID", Nothing)objNodeChild.InnerXml = "101"objNode.AppendChild(objNodeChild)3.4 删除一个子元素objNode.RemoveChild(objNodeChild)3.5 替换一个子元素objNOde.ReplaceChild(newChild,oldChild)4 参考数据<?xml version="1.0" encoding="UTF-8"?><Company><Department ><Department_Name>Cai WuBu</Department_Name><Manager>Zhang Bin</Manager><Employees><Employee ><Employee_ID>12345</Employee_ID><Name>Zhang Bin</Name><Gender>male</Gender></Employee><Employee ><Employee_ID>10101</Employee_ID><Name>Zhang QI</Name><Gender>female</Gender></Employee><Employee ><Employee_ID>10102</Employee_ID><Name>Zhang Xia</Name><Gender>male</Gender></Employee><Employee ><Employee_ID>10201</Employee_ID><Name>ZhangChuang</Name><Gender>male</Gender></Employee><Employee ><Employee_ID>10202</Employee_ID><Name>Zhang Jun</Name><Gender>male</Gender></Employee></Employees></Department><Department ><Department_Name>KaiFa Bu</Department_Name><Manager>Wang Bin</Manager><Employees><Employee ><Employee_ID>22345</Employee_ID><Name>Wang Bin</Name><Gender>male</Gender></Employee><Employee ><Employee_ID>20101</Employee_ID><Name>Wang QI</Name><Gender>female</Gender></Employee><Employee ><Employee_ID>20102</Employee_ID><Name>Wang Xia</Name><Gender>male</Gender></Employee><Employee ><Employee_ID>20201</Employee_ID><Name>Wang Chuang</Name><Gender>male</Gender></Employee><Employee ><Employee_ID>20201</Employee_ID><Name>Wang Jun</Name><Gender>male</Gender></Employee></Employees></Department></Company>

转: http://blog.csdn.net/wf520pb/article/details/2644549

转载于:https://www.cnblogs.com/622698abc/archive/2013/05/17/3083775.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10安装vmware tools + 无法拖拽文件解决

1、加载VMware Tools安装光盘 打开虚拟机VMware Workstation&#xff0c;启动 Ubuntu 系统 菜单栏 - 虚拟机 - 安装VMware Tools。 2、将安装文件提取到本地磁盘 打开加载的VMwareTools光盘&#xff0c;鼠标右键 VMwareTools-*.tar.gz 文件&#xff0c;提取到系统盘下的文件…

火狐最实用的几款插件介绍[含附件]

今天早上发现了FF插件的一遍文章&#xff0c;感觉非常实用&#xff0c;尤其是批量下载图片&#xff0c;以前这个是最头疼的&#xff0c;现在变得很简单了&#xff0c;开心&#xff0c;下来给大家也分享一下吧。 我总结最实用的如下&#xff1a; Firebug 前端开发利器DownThemA…

mysql 需要什么硬件配置_如何来给指定的硬件环境配置一份比较合理的MySQL配置文件-爱可生...

简介通过sysbench的oltp_read_write测试来模拟业务压力、以此来给指定的硬件环境配置一份比较合理的MySQL配置文件。环境介绍硬件配置软件环境优化层级与指导思想优化层级MySQL数据库优化可以在多个不同的层级进行&#xff0c;常见的有&#xff1a;SQL优化参数优化架构优化本文…

perl插入文本

有2个文件。a.txt和b.txt,文件内容如下cat a.txt111 222 333cat b.txtabc def要求把b文件的内容插入a文件含有222的上面。perl -e open $FH,"b.txt";while (1) {$bytesread($FH,$lines,3,length($lines));last if $bytes0};open $FH_A,"a.txt";while (<…

图片打标

在物体检测问题中&#xff0c;第一个需要解决的就是给训练集中的图片打标&#xff0c;所谓打标&#xff0c;就是用一个文件来描述图中物体的位置框坐标&#xff08;xmin&#xff0c;ymin&#xff0c;xmax&#xff0c;ymax&#xff09;&#xff0c;以定位物体的位置。 一个比较…

js时间格式化通用方法

/*** 时间工具类*//*** 获取现在的时间戳&#xff08;精确到s&#xff09;* 使用&#xff1a;new Date().nowTimestamp* type {number}*/Date.prototype.nowTimestamp Date.parse(new Date()) / 1000;/*** 时间戳转换成Date* 使用&#xff1a;new Date().timestampToDate(1493…

动态定时任务与动态生成class代码

动态定时任务 原理 采用定时任务线程池ThreadPoolTaskScheduler来实现定时任务。动态定时任务就是可以配置的&#xff0c;而不是写死在代码中。所以我们要将其写入到数据库中&#xff0c;然后暴露接口就可以进行配置比如创建、启动、结束任务。 数据库脚本 DROP TABLE IF EXIS…

docker登录mysql数据库_Docker下搭建mysql数据库

1.获取官方镜像&#xff1a;[rootCentos7 mysql]# docker pull mysql/mysql-server:latestlatest: Pulling from mysql/mysql-server1f5b026b07bc: Pull complete3d5697fc1304: Pull complete2747c84403db: Pull completedc0c445a852b: Pull completeDigest: sha256:7aba8c77f9…

LNMP与CA认证的童话故事

在前面的一篇博客中&#xff0c;我已经介绍过&#xff0c;如何通过源码编译安装LAMP&#xff0c;见教你源码编译制作LAMP详细过程 &#xff0c;这里就介绍下如何编译安装LNMP&#xff0c;以及如何在LNMP中添加ssl认证。LNMP&#xff0c;也叫做LEMP。L&#xff0c;即linux操作系…

web.config中配置字符串中特殊字符的处理

配置文件中往往要用到一些特殊的字符&#xff0c; Web.Config默认编码格式为UTF-8&#xff0c;对于XML文件&#xff0c;要用到实体转义码来替换。对应关系如下&#xff1a; 字符 转义码 & 符号&&amp;单引号&apos;双引号"&quot;大于>>…

Zabbix 最新版 5.2 版本源码安装

Zabbix 最新版 5.0 LTS 版本安装 zabbix 5.0 版本于 5 月 11 日正式发布&#xff0c;是最新的 LTS&#xff08;长期支持&#xff09;版本&#xff0c;5.0 带来很多功能和特性&#xff0c;后面会陆续推出文章介绍&#xff0c;下面主要介绍下 5.0 版本的安装。 环境要求 5.0 版…

【声卡驱动】安装realtek high definition audio后重启电脑被自动卸载替换成系统自带的realtek auto

解决步骤 先断网安装前先记录realtek auto的GUID&#xff0c;可以从设备管理器中事件中找到它&#xff0c;复制保留备用 安装 realtek high definition audio &#xff0c;重启&#xff08;断网&#xff09;在断网状态下&#xff0c;winr &#xff0c;输入gpedit.msc&#xff…

提问:访问服务器时提示system.componentmodel.win32exception: 拒绝访问

执行权限不够&#xff0c;在web.config添加&#xff1a; <identity impersonate"true" userName"系统用户名" password"密码"/>

丢失MySQL root 密码?

1 先停止掉 MYSQL 服务 /etc/init.d/mysqld stop 2 使用 mysqld_safe 安全登录 mysqld_safe --skip-grant-tables & 3 执行登录&#xff0c;修改密码等 mysql -u -root use mysql; update user set passwordpassword(your new password) where userroot; exit; 4 重新启动M…

mysql explain是什么意思_mysql explain的作用是什么?

mysql explain的作用是模拟Mysql优化器是如何执行SQL查询语句的&#xff0c;从而知道Mysql是如何处理用户的SQL语句&#xff0c;提高数据检索效率&#xff0c;降低数据库的IO成本。mysql explain的作用是&#xff1a;模拟Mysql优化器是如何执行SQL查询语句的&#xff0c;从而知…

d3.js 搭建 d3-force-directed-graph 例子

d3.js 搭建 d3-force-directed-graph 例子 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <script src&q…

js 创建快捷方式

代码 <script type"text/javascript"language"javascript">//创建快捷方式[浏览器设置要低,ff不支持]functioncreateShortcut() { varfso newActiveXObject("Scripting.FileSystemObject"); varshell newActiveXObject(&quo…

100c之23:两个平方数

<?xml version"1.0" encoding"utf-8"?> 100c之23&#xff1a;两个平方数100c之23&#xff1a;两个平方数 Table of Contents 1 问题2 分析3 解决方案4 结果1 问题 已知两个平方三位数abc和xyz&#xff0c;其中a,b,c,x,y,z未必是不同的;而 ax,by,cy…

OpenLDAP在linux上的部署和原理应用centos7

轻型目录访问协议&#xff08;英文&#xff1a;Lightweight Directory Access Protocol&#xff0c;缩写&#xff1a;LDAP&#xff09;是一个开放的&#xff0c;中立的&#xff0c;工业标准的应用协议&#xff0c;通过IP协议提供访问控制和维护分布式信息的目录信息。 OpenLDAP…

网页mysql命令大全_Mysql命令大全

| Monica Sehgal || Hal Simlai || Joseph Irvine |—————3 rows in set (0.00 sec)注意&#xff1a;这里用到CONCAT()函数&#xff0c;用来把字符串串接起来。另外&#xff0c;我们还用到以前学到的AS给结果列’CONCAT(f_name, ” “, l_name)’起了个假名。5.1 创建数据表…