我的规则要求我仅将它们应用于名称中不包含“get”的方法。换句话说,我的规则只需要应用于类中的非 getter 方法。我知道要掌握所有非 getter 方法,我可以使用
//MethodDeclarator[not(contains(@Image,'get'))]
但是,我不知道在哪里插入规则逻辑的语法。是不是像
//MethodDeclarator[
not(contains(@Image,'get'))
'Some Rule Statements'
]
我看到了使用 .在一些示例代码中 [] 内的语句开头。它们有什么用?
在我的特殊情况下,我需要将以下部分组合在一起,但到目前为止我还无法完成它。
第 1 块:
//PrimaryExpression[not(PrimarySuffix/Arguments)]
第 2 块:
//MethodDeclarator[not(contains(@Image,'get'))]
Piece 3:
//PrimaryExpression[PrimaryPrefix/@Label='this']
您至少需要对 XPath 有一些基本知识/理解.
我看到使用.
在 [] 内的语句开头
示例代码。它们有什么用?
[]
叫做谓词。它必须包含布尔表达式。它必须立即进行节点测试。这为满足要选择的节点测试的节点指定了附加条件。
例如:
/*/num
选择所有名为num
它们是 XML 文档顶部元素的子元素。
但是,如果我们只想选择这样的num
元素,其值为奇整数,我们在谓词内添加此附加条件:
/*/num[. mod 2 = 1]
现在最后一个表达式选择所有名为num
它们是 XML 文档顶部元素的子元素and其字符串值表示奇整数。
.
表示上下文节点-- 这是到目前为止已选择的节点(或计算完整 XPath 表达式的起始节点)。
在我的特殊情况下,我需要将以下部分组合在一起......
您忘记说应该以什么方式/如何组合这三个表达式。在 XPath 中,一些经常使用的“组合器”是运算符and
, or
,以及函数not()
.
例如,如果您想选择由all提供了三个 XPath 表达式,您可以使用and
操作员:
//PrimaryExpression
[not(PrimarySuffix/Arguments)
and
PrimaryPrefix/@Label='this'
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)