xpath详细使用介绍

xpath详细使用介绍xpath使用方法,xpath helper使用,xpath finder使用,xpath helper怎么使用,xpath使用,python使用xpath,使用xpath爬虫,xpath,xpath语法,xpath教程
社会化媒体营销 > xpath详细使用介绍

xpath详细使用介绍(1)

如果要告诉别人买一加仑牛奶,您会怎么说?请去买一加仑牛奶回来还是从前门出去,向左转,走三个街区向右转,再走半个街区向右转进入商店。走向通道,沿通道走五米向左,拿一瓶一加仑装的牛奶然后到收银台付款。再沿原路回家。简直太可笑了。只要在请去买一加仑牛奶回来的基础上稍加指示,多数成人都能自己买回牛奶来。

查询语言和计算机搜索与此类似。直接说找一个 Cryptonomicon 的副本要比编写搜索某个数据库的详细逻辑容易得多。由于搜索操作的逻辑非常相似,可以发明一种通用语言让您使用找到 Neal Stephenson 的所有著作这样的命令,然后编写对特定数据存储执行此类查询的引擎。

XPath

在众多查询语言之中,结构化查询语言(SQL)是一种针对查询特定类型的关系库而设计和优化的语言。其他不那么常见的查询语言还有对象查询语言(OQL)和 XQuery。但本文的主题是 XPath,一种为查询 XML 文档而设计的查询语言。比如,下面这个简单的 XPath 查询可以在文档中找到作者为 Neal Stephenson 的所有图书的标题:

//book[author="Neal Stephenson"]/title

作为对照,查询同样信息的纯 DOM 搜索代码如 清单 1 所示:

清单 1. 找到 Neal Stephenson 所有著作 title 元素的 DOM 代码

ArrayList result = new ArrayList();

NodeList books = doc.getElementsByTagName("book");

for (int i = 0; i < books.getLength(); i++) {

Element book = (Element) books.item(i);

NodeList authors = book.getElementsByTagName("author");

boolean stephenson = false;

for (int j = 0; j < authors.getLength(); j++) {

Element author = (Element) authors.item(j);

NodeList children = author.getChildNodes();

StringBuffer sb = new StringBuffer();

for (int k = 0; k < children.getLength(); k++) {

Node child = children.item(k);

// really should to do this recursively

if (child.getNodeType() == Node.TEXT_NODE) {

sb.append(child.getNodeValue());

}

}

if (sb.toString().equals("Neal Stephenson")) {

stephenson = true;

break;

}

}

if (stephenson) {

NodeList titles = book.getElementsByTagName("title");

for (int j = 0; j < titles.getLength(); j++) {

result.add(titles.item(j));

}

}

}

不论您是否相信,清单 1 中的 DOM 显然不如简单的 XPath 表达式通用或者健壮。您愿意编写、调试和维护哪一个?我想答案很明显。

但是虽然有很强的表达能力,XPath 并不是 Java 语言,事实上 XPath 不是一种完整的编程语言。有很多东西用 XPath 表达不出来,甚至有些查询也无法表达。比方说,XPath 不能查找国际标准图书编码(ISBN)检验码不匹配的所有图书,或者找出境外帐户数据库显示欠帐的所有作者。幸运的是,可以把 XPath 结合到 Java 程序中,这样就能发挥两者的优势了:Java Java 所擅长的,XPath XPath 所擅长的。

直到最近,Java 程序执行 XPath 查询所需要的应用程序编程接口(API)还因形形色色的 XPath 引擎而各不相同。Xalan 有一种 APISaxon 使用另一种,其他引擎则使用其他的 API。这意味着代码往往把您限制到一种产品上。理想情况下,最好能够试验具有不同性能特点的各种引擎,而不会带来不适当的麻烦或者重新编写代码。

于是,Java 5 推出了 javax.xml.xpath 包,一个引擎和对象模型独立的 XPath 库。这个包也可用于 Java 1.3 及以后的版本,但需要单独安装 Java API for XML Processing (JAXP) 1.3Xalan 2.7 Saxon 8 以及其他产品包含了这个库的实现。

点击显示全文

分页:123
  • 第五节 使用XPath

    使用XPath使用XPath隐藏>> 第五节 1. XML 文档结构树 使用 XPath XML 文档具有非常好的树状层次结构,以描述产品信息的 XML 文档为例,它的树 状结构如下图所示...

    贡献者:yx544806988
    346408
  • XPath的使用

    XPath的使用_IT/计算机_专业资料。XPath的使用XPath 的使用 XPath 是 XML 的查询语言,和 SQL 的角色很类似。以下面 XML 为例,介绍 XPath 的语法。 定位节点 <...

    贡献者:沟股定力
    772750
  • Xpath使用实例简单粗暴

    Xpath使用实例简单粗暴_计算机软件及应用_IT/计算机_专业资料。XPath 语法类似于...实验10 使用XPath 暂无评价 2页 5下载券 xpath详细使用介绍 10页 1下载券 ...

    贡献者:kun_hu
    199496
  • xpath详细使用介绍

    xpath详细使用介绍_计算机软件及应用_IT/计算机_专业资料。xpath详细使用介绍如果要告诉别人买一加仑牛奶,您会怎么说?“请去买一加仑牛奶回来” 还是 “从前门出去,...

    贡献者:289520621
    291200
  • Firebug查找元素xpath属性使用说明

    Firebug 查找元素 xpath 属性使用说明 1.1 安装 Selenium IDE 1.1.1、 下载安装 firefox 25 简体中文版,并安装完毕《貌似这个版本比较稳定,最新版本的 Selenium ...

    贡献者:嚣张小二哥
    184481
  • xpath使用指南

    温固而知新,可以为师矣 xpath 使用指南 第 1 页共 10 页 温固而知新,可以为师矣 1. 介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 ...

    贡献者:eyes_world
    165423
  • XPath入门教程整理

    它使用 XPath 表达式来查找 XML 文档 中的信息,并把它显示在 HTML 表中。我将把更多的细节放在 XPath 概述 中,XSLT 中 XPath 的使用。这里,我简要描述了 ...

    贡献者:li_chun_tao
    172373
  • xpath的使用方法

    xpath的使用方法_计算机软件及应用_IT/计算机_专业资料。xpath的使用方法 ...> </C> <E/> </A> 现在,我们就来介绍一些 XPath 中节点匹配的基本方法...

    贡献者:rockyylt
    237422
加载中...
加载中...
  • xpath详细使用介绍

    xpath详细使用介绍_计算机软件及应用_IT/计算机_专业资料。xpath详细使用介绍如果要告诉别人买一加仑牛奶,您会怎么说?“请去买一加仑牛奶回来” 还是 “从前门出去,...

  • Xpath使用实例简单粗暴

    Xpath使用实例简单粗暴_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档Xpath使用实例简单粗暴_计算机软件及应用_IT/计算机_专业资料。XPath...

  • 八爪鱼如何通过xpath实现自定义定位元素

    八爪鱼如何通过xpath实现自定义定位元素_互联网_IT/计算机_专业资料。本文介绍八爪鱼如何通过xpath实现自定义定位元素。八爪鱼·云采集服务平台 www.bazhuayu.com 八爪...

  • xpath详解总结,很全面

    请看一个典型的 XPath 查询表达式:/messages/message//child:: node《》[@id=0],其中/messages/message 是路径《绝对路径以"/ "开始》,child::是轴表示在子节点...

  • XPath入门教程整理

    </list> XML 声明《如 <?xml version="1.0" encoding="UTF-8"?>》或文档类型定义《DTD》 没有节点类型,因此在 XPath 中不能引用这类实体。 元素节点代表 ...

24小时热门信息
  • docker学习文档

    docker学习文档_计算机软件及应用_IT/计算机_专业资料。docker学习文档,如何创建docker,如何在docker上部署tomcat与mysql服务 docker 学习笔记笔者装的 linux 系统为 ...

    贡献者:plantixweb
    209099
  • docker安装部署文档

    2.虚拟化系统一般都是指操作系统镜像,比较复杂,称为“系统” ;而 docker 开源而且 轻量,称为“容器” ,单个容器适合部署少量应用,比如部署一个 redis、一个 ...

    贡献者:chen8919043
    103362
  • Docker 镜像的存储机制介绍

    Docker 镜像的存储机制介绍 近几年 Docker 风靡技术圈,不少从业人员都或多或少使用过,也了解如何通过 Dockerfile 构建镜像, 从远程镜像仓库拉取自己所需镜像,推送...

    贡献者:贾宝传奇
    174357
  • 为什么Docker能做这么多事

    为什么Docker能做这么多事_计算机软件及应用_IT/计算机_专业资料。为什么Docker能做这么多事为什么 Docker 能做这么多事本教程有三个目标:说明 Docker 解决的问题...

    贡献者:coolhzzmy3
    104889
  • docker in dockers错误

    docker run -d -p 127.0.0.1:8080:8080 -v /var/lib/jenkins:/var/jenkins_hom e --add-host=dockerhost:`/sbin/ip route | /usr/bin/awk '/...

    贡献者:崩高级
    248184
  • Docker on CentOS

    To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash For more examples and ideas, visit: http://docs...

    贡献者:snake890603
    482090
精彩推荐
  • flashflash

    flash_其它课程_初中教育_教育专区。中考 第十一部分 FLASH 理论题 1.如图,请判断这是下面哪个动画的时间轴《 》 A、机器人跳舞的逐帧动画 B、蜜蜂跳“8”字舞...贡献者:江南碎梦294953

  • 初中flash教案初中flash教案

    初中flash教案_其它课程_初中教育_教育专区。《Flash 动画制作课程》 教 案 任课教师:李枫 2015 年 3 月 一、指导思想及教学目标 以江泽民总书记“三个代表”...贡献者:suky41165896

  • Flash 基础入门学习Flash 基础入门学习

    Flash 基础入门学习_计算机软件及应用_IT/计算机_专业资料。FLSAH一些入门技巧学习 Flash 基础 一、界面介绍 启动 Flash 后,Flash 的界面主要有菜单栏、标准工具栏...贡献者:柳上陌絮185200

  • flash教案《课标》_图文flash教案《课标》_图文

    课程名称:计算机动画设计 FLASH 周课时:4 课时/班 任课班级:计算机 1、2 班 授课教师:刘 猛 授课时间:2014——2015 学年度第二学期 六枝特区职业技术学校 ...贡献者:xiaomengge32355536

  • flash样题flash样题

    一、单选题 1、Flash 软件最突出的两大优势是 ___、___。A A、流式播放、矢量动画 B、流式播放、静态图像处理 C、非流式播放、点阵图像 D、非流式播放...贡献者:0_0柒柒103875

  • Flash入门教程Flash入门教程

    Flash入门教程_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档Flash入门教程_计算机软件及应用_IT/计算机_专业资料。Flash AS 入门教程本...贡献者:大葵仔166160

  • Macromedia Flash_8 基础教程Macromedia Flash_8 基础教程

    Flash 8.0 基础教程一、Flash 基础 启动 Flash 在桌面找一个红色图标 双击即可启动,也可以单击“开始” -“所有程序”,在程序菜单中找到 Flash 或者 Macromedia ...贡献者:liusheng61168241

  • Adobe Flash Player 11.7官方正式版下载Adobe Flash Player 11.7官方正式版下载

    Adobe Flash Player 11.7 官方正式版下载 Flash Player 11.7 系列除了完善了安全性、稳定性和性能、设备兼容性,此次 新版本并没有带来功能上的重大变化,主要是...贡献者:cnbeta_mu666502

手机版 | 欢迎来到社会化媒体营销
RSS订阅