При попытке проанализировать RSS-каналы в Groovy, я нашел пример GPath с использованием подстановочных знаков:
def text = """
<data>
<common-tables>
<table name="address"/>
<table name="phone"/>
</common-tables>
<special-tables>
<table name="person"/>
</special-tables>
<other-tables>
<table name="business"/>
</other-tables>
</data>
"""
def xml = new XmlParser().parse(new ByteArrayInputStream(text.getBytes()))
def tables = xml.'**'.table.findAll{ it.parent().name() ==
"special-tables" || it.parent().name
(из http://old.nabble.com/Q:-Avoiding-XPath---using-GPath-td19087210.html)
Похоже на забавное использование оператора "спред-точка". Я не могу найти ссылку на это на сайте Groovy, в книгах и т.д.
Как это работает, и что более важно, как вы это обнаружите? Есть ли какой-нибудь XPath для GPath "Rosetta Stone"?