By padding the @class
value with leading and trailing spaces, you can test for the presence of ” foo ” and ” bar ” and not worry about whether it was first, middle, or last, and any false positive hits on “food” or “barren” @class
values:
/bookstore/book[contains(concat(' ',@class,' '),' foo ')
and not(contains(concat(' ',@class,' '),' bar '))]