XPath 1.0 学习笔记
作者:快乐笛子 来源:快乐笛子的博客 发布时间:2009-02-25 12:19:00
标签:XPath,学习,笔记,xml
W3C 发布 XPath 1.0 规范是在 1999 年,那时我还正在备战高考,不料十年后,我才开始学习XPath,落后的差距不是一般的大(暴汗),而 XPath 2.0 规范草稿也于 2005 被提出,并有文章透露 XPath 2.0 目前正在 W3C 审核过程的最终阶段。路漫漫其修远兮~
幸好 XPath 1.0 内部的函数比较少,也比较简单,下面就逐一罗列并笔记之:
String | concat(str0,str1[,str2,...]) | 字符串连接函数,返回每个传入参数的连接结果(至少要有两个参数)。 |
---|---|---|
contains(str0,str1) | 如果 str0 包含 str1 返回 true 否则返回 false 。 | |
string(n) | n 可以布尔表达式,节点集或者数字,返回它们的字符串值(字符串转换函数,类似于 toString())。 | |
string-length([str]) | 返回字符串 str 的长度。如果 str 被忽略,则返回当前节点值的字符串长度。 | |
substring(str,offset[,len]) | 截取字符串函数。该函数与 php 的 substr 函数一样。第二个参数是开始截取的位置,第三个参数是需要截取的长度,如果忽略第三个参数,则默认截取到字符串的结尾。 | |
substring-after(str0,str1) | 从 str0 的左端开始查找,在第一个 str1 的位置开始截取到字符串结尾,不包括 str1 。如果 str0 不包括 str1 则返回空字符串。 | |
substring-before(str0,str1) | 从 str0 的左端开始截取,在第一个 str1 的位置结束,不包括 str1 。如果 str0 不包含 str1 ,则返回空字符串。 | |
translate(str0,str1,str2) | 字符串翻译函数。str1 与 str2 建立了一个简单的字符串映射字典。它们的关系是安装字符的先后顺序一一对应映射的。比如 translate("misshjn","mnh","MN") 返回值是 MissjN。第二个参数中的第三个字符j,在第三个参数中找不到与之对应的映射字符,即存在空字符串与j对应,因此在结果中j可以看做被一个空字符替换了。如果第二个参数比第三个参数短,那么第三个参数多出来的部分将被忽视。 | |
start-with(str0,str1) | 如果 str0 以 str1 开头,则返回 true,否则为 false。 | |
normalize-space([str]) | 整理空白字符。它既把字符串左右两端的空白字符去除,还会把字符串中间连续多个的空白字符替换为一个空白符。如果 str 被忽略,则取当前节点值。此函数在文章录入时尤为有用。 | |
Number | number([object]) | 函数参数依下列各项转换成数字:
|
sum(node-set) | 节点集求和函数。 | |
floor(number) | 返回小于或等于 number 的最大整数。比如 floor(2.8) => 2,floor(1.1) => 1。(不管小数多少,都砍掉) | |
ceiling(number) | 返回大于或等于 number 的最小整数。比如 ceiling(2.8) => 3,ceiling(1.1) => 2。(不管小数多少,都进上去) | |
round(number) | 四舍五入函数。 | |
Boolean | boolean(object) | 返回计算布尔结果。object 有以下几种情况:
|
true() | 返回 true | |
false() | 返回 false | |
not(boolean) | 返回相反的状态。如果boolean为true,返回值为false,否则返回true。 | |
lang(str) | 返回当前节点的语言是否与 str 一致。 | |
Node-Set | count(node-set) | 返回节点集中的节点数目。node-set 其实就是 XPath 表达式。 |
position() | 返回当前节点在其兄弟节点中的位置(序号),由 1 开始计数。 | |
last() | 返回当前节点集中最后一个节点的位置。实际上就是所有兄弟节点的总数。 | |
name(node-set) | 返回 node-set 的节点名称,即 tagName。 |


猜你喜欢
- 一、merge(合并)的语法:pd.merge(left, right, how='inner', on=None, lef
- 通过官方文档https://docs.djangoproject.com/zh-hans/3.1/topics/db/multi-db/和c
- 系统环境centos7python2.7先在操作系统安装expect[root@V71 python]# vi 3s.py#!/usr/bi
- Python是一门高级编程语言,其拥有多种循环方式,如for循环、while循环、do-while循环等。在编写程序时,需要根据不同的场景和
- 也许你刚刚来到一家公司,他们希望进行一些“可用性”工作。你可能是一名UI设计师,业务分析师,或前端开发人员,一名产品经理,或者负责用户体验部
- 今天遇到一个要破解的栅栏密码,先给大家介绍通用的脚本。方法一(通用脚本):#!/usr/bin/env python # -*- codin
- 我就废话不多说了,大家还是直接看代码吧!#加载keras模块from __future__ import print_functionimp
- pandas返回缺失值位置有的时候我们可能需要获取一些缺失值的信息,因此我们需要获取这些缺失值在DataFrame中的位置。假如我们的Dat
- 基本命令显示版本信息pip -V安装指定包pip install <packages>pip install -i 'h
- 本文实例讲述了Python基于pyCUDA实现GPU加速并行计算功能。分享给大家供大家参考,具体如下:Nvidia的CUDA 架构为我们提供
- 需求:对于一个python list 或者numpy数组,我需要找到这个list中最大的K个数及其对应的下标。解决方式:1. 可以构造字典通
- 1.vue中echarts的使用 引入echarts后let myChart = echarts.init(document.getElem
- 源代码:# coding=utf-8import loggingimport osimport timeLEVELS={'debug
- opencv 进行任意形状目标识别,供大家参考,具体内容如下工作中有一次需要在简单的图上进行目标识别,目标的形状不固定,并且存在一定程度上的
- 1、上下文管理的使用场景凡是要在代码块前后插入代码的场景,这点和装饰器类似。资源管理类:申请和回收,包括打开文件、网络连接、数据库连接等;权
- 介绍与创建型模式类似,工厂模式创建对象(视为工厂里的产品)时无需指定创建对象的具体类。工厂模式定义一个用于创建对象的接口,这个接口由子类决定
- 平面设计 常用尺寸 三折页广告 标准尺寸: (A4)210mm x 285mm普通宣传册 标准尺寸: (A4)210mm x 285mm文件
- 背景需要在文件夹中搜索某一文件,找到后返回此文件所在目录。用最常规的os.listdir()方式实现了一版,但执行时报错:递归超过最大深度。
- 在cmd输入:python -m django --version来源:https://blog.csdn.net/ShellDawn/ar
- 实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行