Hi!
I discovered a strange behavior i BaseX (8.6.5):
I evaluate
//S/@k/parent::*
or
//S/@k/..
and it works
I evaluate
//S[.//@m="V"]
and it works
But when I evaluate
//S/@k/parent::*[.//@m="V"]
or
//S/@k/..[.//@m="V"]
it does not work. There is no error, just no result.
At first I thought that there was an error with going to a parent of an
attribute node, but that works. Then I thought the problem was with
".//@" in the predicate, but that also works. It appears that
it is the combination that confuses the engine.
Here is an xml to test the above expressions:
<Root>
<B>
<S k="AAA">
<P m="V"
a="1000"/>
<P m="V"
a="800"/>
<P m="G"
a="1000"/>
<P m="E"
a="900"/>
</S>
<S k="AA">
<P m="V"
a="2000"/>
<P m="G"
a="2500"/>
<P m="E"
a="2900"/>
</S>
<S k="D">
<P m="V"
a="4000"/>
</S>
<S k="C">
<P m="V"
a="4000"/>
<P m="G"
a="4000"/>
</S>
</B>
<B>
<S k="AAA">
<P m="V"
a="1200"/>
<P m="V"
a="800"/>
<P m="G"
a="1200"/>
</S>
<S k="AA">
<P m="V"
a="2900"/>
</S>
<S k="C">
<P m="G"
a="5400"/>
</S>
</B>
<B>
<S k="AAA">
<P m="V"
a="1100"/>
<P m="E"
a="900"/>
</S>
<S k="AA">
<P m="V"
a="2700"/>
<P m="G"
a="2500"/>
</S>
</B>
</Root>
I hope you can find the problem and fix it in a new version
soon.
Regards
/nikos