这一节中,我们将继续了解以下XPath的基本概念
1、 层次结构
在图 1的XPath”/文件系统/目录/目录/文件”中,按照斜杠的划分,可一层一层地递进解读该路径的含义:
(1) Xpath表达式最前面的斜杠“/”:表示匹配XML文档的根节点(注意根节点是文档节点,不是根元素,文档节点包含XML声明、DOCTYPE声明、顶层的处理指令、顶层注释和根元素节点),根节点是XML节点树中最外面的节点。
(2) “/文件系统”:在“/”基础上更进一层,表示匹配文档节点下的“文件系统”元素。
(3) “/文件系统/目录”:在前面“/文件系统”的基础上更深入一层,匹配“文件系统”下的“目录”元素。
(4) “/文件系统/目录/目录/文件”:以上逻辑类推,即在匹配文档中“文件系统”元素的基础上,再往内两层“目录”元素,匹配其中所有的“文件”元素。在图 1中,则是具有“名称=cmd.exe”和“名称=regedit.exe”的两个“文件”节点。
2、 线性结构
XML文档结构除了从外到里的层次性结构之外,还有一种线性的(Linear)兄弟(Sibling)关系结构。兄弟关系是指两个或者多个节点属于同一个父节点。例如图 1中,“名称=cmd.exe”和“名称=regedit.exe”的两个“文件”元素之间就是兄弟关系。在文档中,前者出现在后者的前面,因此称前者为后者的额“前导兄弟”(Proceding sibling),后者则为前者的“后继兄弟”(Following sibling)。
在XPath中,通过“position()”函数计算节点在线性关系中的位置。例如:XPath“/文件系统/目录[position()=1]”,“[]”中间的内容称为“谓项(Predicate)”,在此使用“position()”函数,规定只匹配“/文件系统”下的第一个“目录”元素。
一、 XPath定位操作返回节点列表
XPath表达式分定位表达式和求值表达式。前者用于定位XML文档中的节点,后者根据定位结果返回值(如字符串、布尔值、数值等)。前者总是返回结果集(Node Set),或称节点列表。如果XPath匹配结果仅有1个节点符合定位条件,那么返回的匹配结果就是由该节点组成的节点集。XPath定位表达式不可能返回值,这在使用XPath时需要额外注意。
二、 根节点不是根元素
初次接触XPath的人需要注意,文档的根节点(Root node)不是根元素(Root element)。根节点就是文档节点,包含了XML文档的所有内容;根元素是XML文档包含其它元素的节点,是根节点的一个子节点。
三、 相对定位和绝对定位
有UNIX或Linux操作系统经验的人都知道,路径开头的“/”,代表文件系统的根路径。与此类似,XPath的定位路径也以“/”代表文档的根节点(即XML文档)。
以“/”开头的定位步骤,称为绝对定位步骤,表示从文档根节点开始定位;不以“/”开头的,则称为相对定位步骤,表示从当前上下文节点开始定位。
下一节,将介绍一下XPath的语法提要。
分享到:
相关推荐
官方离线安装包,亲测可用
离线安装包,亲测可用
此算法实现是基于Xpath的xml文件查询,只要输入Xpath路径(全路径)就能返回目标节点信息,同时也支持数据的更新设置。
1、学习如何使用XMLSPY集成开发环境执行XPath查询、以及XSLT的数据转换。 2、理解XPath的类型系统和序列类型等相关概念,掌握XPath表达式语法和执行语义,能够熟练地、灵活地运用各种关系轴、判定谓词和XPath基本...
CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式等.chm文件
CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式等CHM格式学习文档
好不容找到的的CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式中文的帮助文档,而且带搜索功能很强大,找了很久才找到,值两个积分吧
BIT-101 XPath Query Tool XML查询工具
实用的JSTL想要的可以下载!!!解压就可以使用
从XML文件抽出XPath - C and C++ 两个版本。
xpath读取XML节点 用jdom包
之前找了好多感觉和自己的需求不太一样,这个可以根据Xpath解析出来xml里所有的信息,十分好用 举个例子 xmlPath = "E://upload/xml/1580242.163.xml"; XPathUtil util = XPathUtil.newInstance(xmlPath); Product ...
使用xpath读取xml中的数据
xPath.jar,XML解析包。XPath是获取xml中数据的一种方式,其简单语法易用。
XML查询总览xmlquery是用于XML文档的XPath查询包,允许您使用XPath表达式从XML文档中提取数据或评估。 xmlquery具有内置的查询对象缓存功能,可以缓存最近使用的XPATH查询字符串。 启用缓存可以避免为每个查询重新...
采用XPATH在线查询XML文件的搜索引擎源码
主要介绍了Python3 xml.etree.ElementTree支持的XPath语法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
xml+dom4j+xpath资料
Web爬网,XPath,XSLT 全名:魏云晨SEAS登录:yunchenw 您实现了哪些功能? MileStone2:完整要求爬网程序和Servlet不应同时作为两个进程启动。 启动服务器,运行搜寻器(基本上,在运行搜寻器之前添加用户和通道) ...