The following query works: //node[@pos and number(@end) != number(@begin) + 1] But variants without _number_ crash, e.g.: //node[@pos and @end != @begin + 1] //node[@pos and @end != @begin]