一、Xpath
- 在XML文件中查找信息的一套规则,根据XML的元素或者属性进遍历
- http://www.w3school.com.cn/xpath/index.asp
1、Xpath开发工具
- 开源的Xpath表达式编辑工具:XMLQuire
- Chrome插件:Xpath Helper
- Firefox插件:Xpath Checker
2、xml选取节点
-
nodename:选取此节点的所有子节点
-
/:从根节点开始选取
-
//:选取节点,不考虑位置
-
.:选取当前的节点
-
…:选取当前节点的父节点
-
@:选取属性
<?xml version="1.0" encoding="utf-8" ?> <school> <teacher> <name>LiuDa</name> <age detail="Age for 2010">18</age> <mobile>13225775176</mobile> </teacher> <student score='99'> <name other="他是班长">Anrry</name> <age detail="He is the yongest in class">11</age> </student> <student> <name>Jane</name> <age>12</age> <mobile>1555687952</mobile> </student> </school>
-
基于xml的案例
school/teacher:返回teacher节点 school/student:返回两个student节点 //student:选取所有student的节点,不考虑位置 school//age:选取school后代中所有age节点 //@other:选取other属性 //age[@detail]:选取带有属性detail的age元素
3、谓语-Predicates
-
选取school下面的第一个student节点
/school/student[1]
-
选取school下面的最后一个student节点
/school/student[last()]
-
选取school下面的倒数第二个student节点
/school/student[last()-1]
-
选取school下面的前两个student节点
/school/student[position()<3]
-
选取带有属性score的student节点
//student[@score]
-
选取带有属性score且值为99的student节点
//student[@score="99"]
-
选取带有属性score的student节点的子节点age
//student[@score]/age
4、Xpath的一些操作
-
|:或者
//student[@score] | //teacher
选取带有属性score的student节点和teacher节点
二、正则表达式(re)
- 是一个计算机科学的概念-
- 用于使用单个字符串来描述,匹配符合某个规则的字符串
- 常常用来检索,替换某些模式的文本
正则的写法
- .(点号):表示任意一个字符,处了\n,比如查找所有的一个字符 \.
- []:匹配中括号中列举的任意字符
- \d:任意一个数字- \D:处了数字都可以
- \s:表示空格,tab键
- \S:除了空白符号
- \w:单词字符,就是a-z,A-Z,0-9,_
- \W:除了\w
- *:表示前面的内容重复零次或者多次
- +:表示前面内容至少出现一次
- ?:前面才出现的内容0次或者一次
- {m,n}:允许前面的内容出现最少m次,最多n次
- ^:匹配字符串的开始
- $:匹配字符串的结尾
- \b:匹配单词的边界
- ():对正则表达式内容进行分组,从第一个括号开始,编号渐渐增大
- \A:只匹配字符串开头
- \Z:仅匹配字符串末尾
- |:左右任意一个
- (?P< name>…):分组,除了原来的标号再指定一个别名
- (?P=name):引用分组