вопрос в том, как я могу сосчитать выражения for в выражениях for с неизвестным родителем.
Код:
let $act :=(
<act time="1231">
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
</act>,
<act time="51292">
<state>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
</state>
</act>,
<act time="41212">
<state1>
<state2>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
</state2>
</state1>
</act>
)
for $data in $act
return
<act time ="{$data/@time}">
{
for $count at $cnt in $act//data
where $count/.. is $data
return
<data value ="{$count}">{$cnt}</data>
}
</act>
Результаты:
<act time="1231">
<data value="hello">1</data>
<data value="hello">2</data>
</act>
<act time="51292"/>
<act time="41212"/>
Ожидается:
<act time="1231">
<data value="hello">1</data>
<data value="hello">2</data>
</act>,
<act time="51292">
<data value="world">3</data>
<data value="world">4</data>
</act>,
<act time="41212">
<data value="3">5</data>
<data value="3">6</data>
</act>
также ссылка на код, который показывает, что является результатом и чего я ожидаю https://xqueryfiddle.liberty -development.net / pPgCcoE / 11