Almost correct.
<xsl:if test="preceding-sibling::recurso[1]/unidad != unidad"> </xsl:if>
:: is for axes, not for moving along a path ("creating a location step"). In XPath terminology:
preceding-sibling :: recurso [1] / unidad! = unidad
'' '' '' '' '' '' '' '' '' +++++++++++ ++++++
###
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'= axis name (optional, defaults to "child")
+ = node test (required)
# = predicate (optional, for filtering)
~ = location step (required at least once per select expression)
[1] is short for [position()=1] .
The child axis is implicit in the location step, so this
preceding-sibling::recurso[1]/unidad != unidad
equivalent to this:
preceding-sibling::recurso[1]/child::unidad != unidad
Tomalak Jun 07 2018-10-06T00: 00Z
source share