## select any "element" with no kids and no text /descendant-or-self::node()[ not(./*) and not(self::text()) ] #### /descendant-or-self::node() [not(./*)] [not(self::text()]