使用contains()和concat()函数比较属性的重要性,而不是直接比较using =运算符

时间:2012-10-31 10:38:02

标签: xpath

比较属性值

<div class="asset-body">

函数contains()和concat()必须像

一样使用
contains(concat(' ',@class,' '),' asset-body ')

正如帖子How to select an element based on the value of a nested sibling in XPath?接受的答案所述。

或仅使用

@class='asset-body'

就足够了。

1 个答案:

答案 0 :(得分:2)

如果您知道输入元素的属性中只使用了一个class值,那么肯定@class = 'asset-body'就足够了。然而(X)HTML通常允许class属性值是一个空格分隔的类名列表,而现在随着CSS的广泛使用,使用各种类名并不罕见,所以为了满足做contains(concat(' ', @class, ' '), ' asset-body ')的情况是必要的。因此,如果您控制输入并且确定在使用XPath检查的输入元素上只使用了一个类值,则使用短表达式,否则使用长表达式。