`

XPath各种表达式的应用

    博客分类:
  • XML
XML 
阅读更多
近来,项目用到xml。所以引入了dom4j,来生成xml文档。但是我们经常需要在xml中有条件的查找某些结点,因此我们常用XPath提供的xml过滤规则表达式来满足我们的需求,现在将常用的规则表达式总结如下:
/node表示在xml文档的根目录查找结点名称为node的结点
/node表示在xml文档的根目录查找结点名称为node的结点
./node表示在当前结点下查找结点名称为node的结点
//node表示在xml文档中递归查找结点名称为node的节点
//*表示在xml文档中查询所有的结点,但是排除文本节点
//node()表示在xml文档中查询所有结点,包含文本节点
//text()表示在xml文档中递归查找所有的文本节点
//*/text()[contains(., '测试')]表示在xml文档中递归查找所有结点,条件为该结点的文本节点包含"测试"
//node[@id]表示在xml文档中递归查找结点名称为node的结点,条件为该结点必须含有id属性
//node[id]表示在xml文档中递归查找结点名称为node的结点,条件为该结点必须含有结点名称为id的结点
//nodes[node/id]表示递归查找nodes结点,条件为nodes结点下必须有node结点,且node结点下必须有id结点
//nodes[@id]/node[id]表示递归查找含有id属性的nodes结点下的node结点,条件为node结点下必须含有id结点
//nodes[@id]/node[0]表示递归查找含有id属性的nodes结点下的第一个node结点
//nodes[@id]/node[last()]表示递归查找含有id属性的nodes结点下的最后一个node结点
//nodes/node[position() < 4]表示递归查找nodes结点下索引小于4的node结点
//nodes[@id]/node[position() < last()]递归查找含有id属性的nodes结点下除最后一个结点外的node结点
/nodes/child::node()[name()='node']表示查找nodes结点下结点名称为node的子结点
/nodes/child::node等同于/nodes/node表示查找nodes下的node子结点
/nodes/node/attribute::id等同于/nodes/node/@id表示查找nodes结点下的node结点的id属性
//nodes[@id='1001']/node[starts-with(@id, '1')]表示查找id属性为1001的nodes结点下的id属性以1开头的node结点
//@*[ends-with(., '1')]表示查找以1结尾所有属性
(//* 竖杠 //@*)[substring(name(), 1, 5) = 'class']查找所有结点名称或属性名称的1到5之间的字符等于'class'的结点
//node[@attr!='-2' and @attr!='2']查找所有node节点,其attr属性不等于2和-2

最后一条中的汉字竖杠为|,|为javaeye的系统字符,我只能用汉字替代了。



XPath 轴
文档轴 用途
self 选择当前节点
parent 选择当前节点的父节点
child 选择当前节点的所有子节点
attribute 选择当前节点的所有属性
ancestor 选择当前节点的所有祖先,包括父节点、父节点的父节点等等
ancestor-or-self 选择当前节点的祖先以及当前节点本身
descendant 选择当前节点的所有后代,包括子节点、子节点的子节点等等
descendant-or-self 选择当前节点的后代以及当前节点本身
preceding 选择整个文档中出现在当前节点前面的所有节点
preceding-sibling 选择文档中出现在当前节点前面的所有同胞节点(即与当前节点同级的节点)
following 选择整个文档中出现在当前节点后面的所有节点
following-sibling 选择文档中出现在当前节点后面的所有同胞节点(即与当前节点同级的节点)
namespace 选择当前节点的所有名称空间节点






分享到:
评论

相关推荐

    xpath表达式基本格式

    xpath表达式的基本格式,应用实例等等

    模块三 第一周 作业一 xpath应用

    谷歌xpath的添加 xml的理解 xpath的使用 3 评分标准 写出正确的XPath语句10分 成功输出课程分类 10分 代码注释,规范10分 4 要点解析 谷歌添加xpath方法 加载本地xpath插件步骤说明 xpath 5 代码实现 import lxml....

    xpath-extractor:帮助您在 html 上测试 xpath 的 Web 应用程序

    稍后我们可能会添加传递 xpath 表达式列表的功能,每个表达式都有回退到下一个(如果前一个不返回任何内容)并显示哪个表达式生效。安装 pip install -r requirements.txt运行应用程序 python app.py截屏

    php+xml编程之xpath的应用实例

    本文实例讲述了php+xml编程之xpath的应用。分享给大家供大家参考。具体如下: xpath设计的核心思想:迅速定位到你所...复制代码 代码如下:$item = $xpath-&gt;query(“xpath路径表达式”);//返回值为DOMNodList对象 实例:

    EL表达式的详细使用

    表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型...

    xPath分析仪「xPath Analyzer」-crx插件

    Google Chrome扩展程序,允许根据给定URL上可用的XML评估xPath表达式。 xPath分析器没有其他依赖项。 https://github.com/brunoscopelliti/xpath-analyzer使用起来真的很简单:设置XML所在的URL,按Enter,然后编写...

    网络爬虫JSON和XPath介绍

    test1.html为XPath表达式运用示例html文件 JSON.html为JSON在html中的应用文件

    xPath Analyzer-crx插件

    Google Chrome扩展程序,允许根据给定URL上可用的XML评估xPath表达式。 xPath分析器没有其他依赖项。 https://github.com/brunoscopelliti/xpath-analyzer使用起来非常简单:设置XML所在的URL,按Enter,然后编写要...

    Python Xpath 的使用

    文章目录Xpath 的使用lxml 库Xpath 简介Xpath 语法实例应用Xpath 节点所有节点子节点父节点属性单值匹配多值匹配多属性匹配获取属性文本获取Xpath 轴小结 Xpath 的使用 正则表达式 笔记整理 Python requests 模块 ...

    爬虫解析_xpath基本应用(解析本地文件和服务器响应).zip

    常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...

    XML中XPath包含关系判定算法* (2008年)

    所有这些应用都需要解决XPath表达式的包含问题以提高匹配效率。引入了条件同态的概念,提出了一种基于条件同态的包含关系的判定算法,该算法能够正确判定现有的实用算法不能正确处理的一类模式树的包含关系。

    爬取某job网站的招聘信息,Xpath、正则的应用

    因为需要最近写了这个代码,爬取的信息就直接存入数据库,里面有一些数据处理的方法挺好的,记录下来! # -*- coding:utf-8 -*- """ # @Author: 小白马 # @CSDN: E_l_Bailong """ from urllib import request,parse ...

    XML documents from XPath and it's data.-开源

    用于从原始数据创建 XML 文档的应用程序。 使用规则将一组 XPath 表达式及其关联值转换为 XML 文档,以从 XPath 表达式聚合到单个节点。

    XPath Explorer-开源

    XPath Explorer(XPE)是一个GUI应用程序,可让您交互式地使用XPath进行实验。 给定xpath和URL(指向HTML或XML文档),它将显示匹配的节点及其值。 这使您可以轻松地使用和调试XPath表达式

    Android 本地网络小说爬虫,基于jsoup及xpath.zip

    常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...

    PHP使用xpath解析XML的方法详解

    XML文件在PHP网站开发的轻量级应用中使用非常广泛,而PHP解析和读取XML文件的方式有很多种,比如JS DOM、SimpleXml、Xpath等方式解析XML文件,今天来讲讲在PHP中使用Xpath解析XML的实例,同时通过Xpath解析XML的实例...

    论文研究-一种基于树状逻辑式的XML查询方法.pdf

    已有的研究如XPath和XQuery得到应用,但其查询表现存在一些缺点需要改进。从模板匹配的角度出发,基于谓词逻辑设计了树状逻辑表达式LXT。该表达式的特点是能以树状结构模板描述XML文档查询需求。在此基础上,进一步...

    基于python的高性能爬虫程序,使用了多线程+缓存+xpath实现的,这里以彼-岸图库为例,实现,仅用于学习交流

    在数据解析方面,程序利用XPath解析器,这是一种强大的XML文档查询工具,它允许用户通过简洁的路径表达式来定位和提取所需的信息。这种高效的数据处理方式,确保了信息抽取的准确性和灵活性。 需要特别强调的是,本...

    各种爬虫:爱企查爬虫,网上114企业信息爬虫,抖音视频爬虫,wipo爬虫, 专利信息爬虫(patentscope).zip

    常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...

Global site tag (gtag.js) - Google Analytics