首页 > 解决方案 > XPath 中 //、.// 和 ..// 之间的区别?

问题描述

任何人都可以帮助了解以下 XPath 之间的区别,并帮助我了解何时使用其中的哪些。我发现它们三个都可以工作,但不确定何时使用它们。

  1. Get Element Text ${output} //priority

  2. Get Element Text ${output} .//vrrp-group/name

  3. Get Element Text ${output} ..//track/priority-hold-time

标签: xmlxpathxml-parsingrobotframework

解决方案


XPath 中 //、.// 和 ..// 之间的区别

//在后代或自身节点(沿descendant-or-self)中选择。它是/descendant-or-self::node()/.

  1. //从根节点开始,从而覆盖整个文档。
  2. .//上下文节点开始。
  3. ..//从上下文节点的父节点开始。

在您的特定情况下

  1. //priority选择priority文档中的所有元素。
  2. .//vrrp-group/name在上下文节点下选择所有name具有vrrp-group父元素的元素。
  3. ..//track/priority-hold-time在上下文节点的父节点下选择具有父节点的所有priority-hold-time元素track

机器人框架说明:

Get Element TextRobotframework XML library 命令的上下文中,XPath 必须相对于节点(${output}在您的情况下)。//priority那里不允许使用绝对 XPath 。

也可以看看


推荐阅读