信捷PLC与HMI在金属件非标打磨工作站的应用与调试要点
2026/9/10 2:51:04
1, 基本路径表达式
/ | 从根节点选取 | /html/body/div |
// | 从任意位置选取(不考虑层级) | //div(所有div) |
. | 当前节点 | ./span(当前节点下的span) |
.. | 父节点 | ..(当前节点的父元素) |
* | 通配符,匹配任意节点 | //div/*(div下的所有子元素) |
@ | 选取属性 | //a/@href(所有a标签的href属性) |
2,常用谓语(条件筛选)
[索引] | 选取第N个元素(从1开始) | (//div)[1](第一个div) |
[@属性='值'] | 按属性筛选 | //input[@id='username'] |
[contains(text(),'文本')] | 文本包含 | //span[contains(text(),'成功')] |
[text()='完整文本'] | 文本完全匹配 | //button[text()='确定'] |
[@class='cls'] | 按class匹配(必须是完整值) | //div[@class='header'] |
[contains(@class,'cls')] | class包含(推荐) | //div[contains(@class,'header')] |
[normalize-space()='文本'] | 忽略首尾空格 | //p[normalize-space()='Hello'] |
[last()] | 最后一个 | //li[last()] |
[position()<3] | 前两个 | //li[position()<3] |
[@id or @class] | 逻辑或 | //input[@id='name' or @class='name'] |
[@id='id1' and @type='text'] | 逻辑与 | //input[@id='id1' and @type='text'] |
3, 轴(Axes)定位
ancestor:: | 所有祖先节点 | //span/ancestor::div |
descendant:: | 所有后代节点 | //div/descendant::span |
following-sibling:: | 后面的兄弟节点 | //h1/following-sibling::p |
preceding-sibling:: | 前面的兄弟节点 | //h1/preceding-sibling::p |
parent:: | 父节点 | //span/parent::div |
child:: | 子节点(默认) | //div/child::span |
4,常用函数
text() | 获取文本 | //span/text() |
contains(a,b) | 包含判断 | //div[contains(@id,'header')] |
starts-with(a,b) | 以某值开头 | //input[starts-with(@id,'user')] |
ends-with(a,b) | 以某值结尾(XPath 2.0+) | //input[ends-with(@id,'name')] |
normalize-space() | 去除首尾空格 | normalize-space(//p/text()) |
count() | 计数 | count(//li) |
5,运算符
1,基本语法
$ | 根节点 | $ |
.或[] | 子节点(点表示法 / 括号表示法) | $.data或$['data'] |
* | 通配符,匹配所有 | $.data[*] |
.. | 递归向下查找(任意深度) | $..trackNo(查找所有trackNo) |
@ | 当前节点(过滤器中使用) | $.data[?(@.id)] |
[索引] | 按索引取元素(从0开始) | $.data[0] |
[start:end:step] | 切片 | $.data[0:5] |
[?()] | 过滤器表达式 | $..[?(@.fileType==11)] |
2,常用过滤器
?(@.属性) | 判断属性是否存在 | $..[?(@.imageUrl)] |
?(@.属性==值) | 等于 | $..[?(@.fileType==11)] |
?(@.属性!=值) | 不等于 | $..[?(@.status!='closed')] |
?(@.属性>值) | 大于 | $..[?(@.count>10)] |
?(@.属性<值) | 小于 | $..[?(@.price<100)] |
?(@.属性~=正则) | 正则匹配 | $..[?(@.fileName~=^XD.*)] |
?(@.属性 contains '值') | 包含(部分解析器支持) | $..[?(@.name contains '张三')] |
?(@.属性 in [值1,值2]) | 在列表内 | $..[?(@.status in ['ok','done'])] |
3,常用函数(部分解析器支持)
min() | 最小值 | $.data.min() |
max() | 最大值 | $.data.max() |
avg() | 平均值 | $.data.avg() |
length() | 长度 | $.data.length() |
异常
3,API的调度
在影刀里面调用AP接口,主要分为三步
第一步:导入使用的类
第二步:获取Token
第三步:使用JSON格式发送请求