Есть ли способ использовать функцию суммы в XPATH, чтобы она работала на подузлах в файле XML?
Учитывая следующий файл XML.
<?xml version='1.0' encoding='UTF-8'?>
<countries>
<country name ='Israel'>
<city num = '300001'>'TelAviv'</city>
<city num = '300000'>'Jerusalem'</city>
<city num = '400000'>'Haifa'</city>
</country>
<country name ='USA'>
<city num = '800000'>'Los Angeles'</city>
<city num = '500000'>'New York'</city>
<city num = '1000'>'Washington'</city>
</country>
<country name ='Italy'>
<city num = '998999'>'Rome'</city>
<city num = '1000'>'Vatican'</city>
</country>
<country name ='LalaLand'>
<city num = '100'>'A'</city>
<city num ='200'>'B'</city>
</country>
</countries>
Задача состоит в том, чтобы вернуть названия всех стран, в которых сумма всех жителей (атрибут num) во всех их странах превышает 1 миллион.После нескольких попыток мне удалось написать следующий запрос:
countries/country[sum(//country/city/@num) > 1000000]/@name
Но этот запрос суммировал всех граждан (число) во всех странах вместе, а не то, что нам было предложено сделать.(Из запроса возвращается 3300300)
Мы должны получить Израиль и США, обе популяции составляют более 1 млн.
Предложения по оптимизации и правильное решение?