易语言源码
注意:部分属性值无法被取出,请自行测试,将表达式最后一个写成属性即为取出该标签下的属性值
表达式结构
表达式A | 表达式B
示例://div/a/img[2]/@alt | //div[@class<>head]//input/@id
解析:表达式A是 //div/a/img[2]/@alt 表达式B是 //div[@class<>head]//input/@id
结果:先分析表达式A 后分析表达式B 结果先是A后是B 直接合并
单个表达式结构
//标签A[条件1\条件2]/标签B[条件]/标签B[条件]
(1)分隔符
//是跳级寻找,为从头开始寻找任意一个值
示例://div 会把当前HTML所有

标签取出
/为子集寻找,并不会取出子集的子集,寻找上一个标签的子集
示例://div/a 会取出所有div标签下有标签的部分取出
(2)标签
标签种类有三种
@开头的为属性值
示例://title/@herf 会取出所有标签title当中的@herf属性值
*为取所有标签
示例:/*
直接是英文则是取所有此标签名
示例:/html/body/div
条件结构
[条件1\条件2\条件3]
而每个条件又是如下的组成部分
条件关系符(条件属性 属性关系符 属性值 {属性表达式}
示例://div[and(@herf<>http)\or(@class=class_name)\rev()]
(1)条件关系符
条件关系符有七种
1:and() 和 2:or()或 3:rev() 取反 4:odd() 奇数 5:even() 偶数 6: max() 最大值 7: min() 最小值
1:and()
作用是取出如果符合上一个条件,并且也符合这个条件的标签,就是“和”关系
如果没有条件关系符的话默认是and
示例1://div[3] 取出找到div标签的第三个
示例2://div[@class=class_name\and(@href<>https)] 取出名为div标签,并且其属性class的名字是class_name并且 其 属性@href包含https的div标签
2:or()
作用是取出符合上一个条件或者符合这个条件的标签
示例://div[@id=2\or(@id>6)]
表示取出div标签属性等于2的或者属性id大于6的所有div标签
3:rev()
所用是取反,括号里面不可以输入内容,会将符合之前条件的变成不符合,不符合的变成符合
示例://div[@href<>https\rev()] 意思是取出div标签属性@href不包含https的div标签,因为后面的rev()取了反值
4:odd()
取奇数,括号里面不可以输入内容
会将上一个条件得出的所有符合的结果取奇数
示例://div[@href<>https\odd()]
5:even()
取偶数,括号里面不可以输入内容
会将上一个条件得出的所有符合的结果取偶数
示例://div[@href<>https\even()]
6:max()
取最小值,会将当前条件结果取出最大值,需要有属性表达式
示例://div[max(@width{%num%px})] 表示取出div下属性标签width的最大值,并且width的格式是 一个整数加上px 比如 2000px
7:min
()
取最小值,会将当前条件结果取出最小值,需要有属性表达式
示例://div[min(@width{%num%px})] 表示取出div下属性标签width的最小值,并且width的格式是 一个整数加上px 比如 2000px
(2)条件运算符
条件运算符有7种,分别是
1:== 不等于 2:>= 大于等于 3:<= 小于等于 4:<> 包含 5:> 大于 6:< 小于 7:= 等于 示例: //div[@width>=16{%num%%}] 意为取出所有属性width大于等于16%的div标签
提示:当条件运算符是 大于等于、小于等于、大于、小于时,如果属性不是整数,那么则需要再数值后加上属性表达式来指明取出属性中的哪一部分数字,数字变量是%num%
示例:
//div[@herf<>https] 包含https的
(3)条件表达式

来指定你比较的数字再整个属性值的位置,比如你取的是像素宽度,结果是2000px,则需要用条件表达式来指定这个格式
示例://div[@width>500{%num%px}]/@width
(4)属性
属性前需要加@符号,如果要取出的是其内部的文本比如
文本 则属性名称为 @@text 比如 //div/title/a/@@text 则最终返回的结果是内部的文本
表达式举例
/html/body/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]/a/img[2]/@alt
//div[@class<>head]//input/@id
//div[@class<>head]//input/@id
//a[@title=直达]/@href
请在例程中查看

发表评论

后才能评论