К сожалению, в Groovy в настоящее время нет способа выполнить то, что вы просите.
Когда вы выполняете такую операцию над GPathResult (или любым из его дочерних элементов)
html."**".a.b.c
Что сделано для каждого "." вызов метода GPathResult.getProperty () . И этот метод, как только несколько допустимых синтаксических сахара (*, **, .. и @). Это означает, что если вы не используете один из них, предполагается, что свойство действительно существует для каждого целевого узла.
Если вы хотите иметь условный нулевой безопасный оператор для обхода вашего дерева, он запросит либо добавление синтаксического префикса сахара (например, «? A») в классе GPathResult. Может быть, вы можете достичь этого, используя метакласс расширения и переопределив метод getProperty, но я не пробовал.