XPath 中 //、.// 和 ..// 之间的区别?
Difference between //, .//, and ..// in 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
axis)。 /descendant-or-self::node()/
.
的缩写
//
从根节点开始,从而覆盖整个文档。
.//
从 context node. 开始
..//
从上下文节点的父节点开始。
在你的具体情况下
//priority
选择文档中的所有 priority
个元素。
.//vrrp-group/name
在上下文节点下选择具有 vrrp-group
父元素的所有 name
元素。
..//track/priority-hold-time
在上下文节点的父项下选择具有 track
父项的所有 priority-hold-time
元素。
Robotframework 笔记:
在 Get Element Text
Robotframework XML 库命令的上下文中,XPath 必须相对于 source 节点(${output}
in你的情况)。 //priority
等绝对 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
axis)。 /descendant-or-self::node()/
.
//
从根节点开始,从而覆盖整个文档。.//
从 context node. 开始
..//
从上下文节点的父节点开始。
在你的具体情况下
//priority
选择文档中的所有priority
个元素。.//vrrp-group/name
在上下文节点下选择具有vrrp-group
父元素的所有name
元素。..//track/priority-hold-time
在上下文节点的父项下选择具有track
父项的所有priority-hold-time
元素。
Robotframework 笔记:
在 Get Element Text
Robotframework XML 库命令的上下文中,XPath 必须相对于 source 节点(${output}
in你的情况)。 //priority
等绝对 XPath 在那里是不允许的。