xml - XPath 中 //、.// 和 ..// 之间的区别?
问题描述
任何人都可以帮助了解以下 XPath 之间的区别,并帮助我了解何时使用其中的哪些。我发现它们三个都可以工作,但不确定何时使用它们。
Get Element Text ${output} //priority
Get Element Text ${output} .//vrrp-group/name
Get Element Text ${output} ..//track/priority-hold-time
解决方案
XPath 中 //、.// 和 ..// 之间的区别
//
在后代或自身节点(沿descendant-or-self
轴)中选择。它是/descendant-or-self::node()/
.
//
从根节点开始,从而覆盖整个文档。.//
从上下文节点开始。..//
从上下文节点的父节点开始。
在您的特定情况下
//priority
选择priority
文档中的所有元素。.//vrrp-group/name
在上下文节点下选择所有name
具有vrrp-group
父元素的元素。..//track/priority-hold-time
在上下文节点的父节点下选择具有父节点的所有priority-hold-time
元素track
。
机器人框架说明:
在Get Element Text
Robotframework XML library 命令的上下文中,XPath 必须相对于源节点(${output}
在您的情况下)。//priority
那里不允许使用绝对 XPath 。
也可以看看
推荐阅读
- angular - 生产构建不会创建唯一的哈希 - Angular 9
- three.js - 三点图像精灵透明度错误,光线投射不一致
- elasticsearch - 在 Elasticsearch 中存储嵌套数据的优化方式
- python - 根据概率对数据框行进行分类 - pandas
- excel - 在某些单元格中循环的宏
- amazon-web-services - 使用 AWS_IAM 向 AWS WebSocket API 网关授权请求
- wso2 - 更改 WSO2 IS 5.9.0 中用户名的正则表达式限制后,Token Introspect API 不起作用?
- python-3.x - 如果函数不在模块级别,如何向 Dask 提交函数?
- laravel - 将 Northwind 数据库导入 laravel
- python - 如何复制和操作字典?