current vs ../ 在 yang xpath 表达式中的用法
usage of current vs ../ in yang xpath expressions
以下代码段中 .. 和 current() 的用法是否正确?
意思是,有时 current() 和 ../ 是等价的 ?
container c {
leaf f1 {
type string;
}
leaf f2 {
type string;
when "../f1 = 'abc'";
}
leaf f3 {
type string;
when "current()/../f1 = 'abc'";
}
}
您在示例中使用 current()
的方式是正确的,但多余。 current()
return 是初始上下文节点,因为所有表达式都以其上下文中的初始上下文节点开头,所以明确说明这一点毫无意义。
这并不意味着 current()
等同于表达式开头的 ../
。后者可以扩展为 parent::node()/child::node()
,其中 return 是初始上下文节点的父节点的所有子节点。 returning 节点集将包含初始上下文节点及其所有兄弟节点。这不是 current()
return 的 - 它充其量是相似的。
等效的是.
,或者换句话说,self::node()
。如果表达式以 .
开头,它可能 return 与 current()
相同的节点,但这完全取决于使用 .
的上下文。
以下代码段中 .. 和 current() 的用法是否正确? 意思是,有时 current() 和 ../ 是等价的 ?
container c {
leaf f1 {
type string;
}
leaf f2 {
type string;
when "../f1 = 'abc'";
}
leaf f3 {
type string;
when "current()/../f1 = 'abc'";
}
}
您在示例中使用 current()
的方式是正确的,但多余。 current()
return 是初始上下文节点,因为所有表达式都以其上下文中的初始上下文节点开头,所以明确说明这一点毫无意义。
这并不意味着 current()
等同于表达式开头的 ../
。后者可以扩展为 parent::node()/child::node()
,其中 return 是初始上下文节点的父节点的所有子节点。 returning 节点集将包含初始上下文节点及其所有兄弟节点。这不是 current()
return 的 - 它充其量是相似的。
等效的是.
,或者换句话说,self::node()
。如果表达式以 .
开头,它可能 return 与 current()
相同的节点,但这完全取决于使用 .
的上下文。