Я совсем не уверен, но мне кажется, что count(*)
делает не то, что вы думаете. Это подсчитывает количество дочерних элементов текущего узла, а не размер текущего списка узлов. Не могли бы вы распечатать его, чтобы проверить, что это 8 или 9 вместо 12?
Используйте last()
, чтобы получить размер контекста.