Мне нужно получить набор узлов, содержащий элементы, которые относятся ровно к двум другим элементам.Я не могу понять, как это сделать в одном выражении XPath.
Мой (упрощенный) исходный XML выглядит следующим образом:
<group>
<id>1337</id>
</group>
<group>
<id>1338</id>
</group>
<member>
<id>31415</id>
<groupId>1337</groupId>
</member>
<member>
<id>31416</id>
<groupId>1337</groupId>
</member>
<member>
<id>31417</id
<groupId>1338</groupId>
</member>
Теперь я хочу выбрать все <group>
узлы, которые относятся ровно к двум <member>
с, что должно привести к возврату группы только с id = 1337.Я попробовал следующее ...
<xsl:variable name="groupsWithTwoMembers" select="group[count(../member[id=??]) = 2]"/>
... и, очевидно, в "??"Мне нужно вставить groupId группы, которую я выбрал в начале выражения XPath, но я не могу придумать, как добраться до этого groupId.Может ли кто-нибудь думать об этом?Спасибо!