Предположим, что переменная $personid
содержит @personid
из Person
, который вы проверяете, тогда это только проверяет существование:
<xsl:when test="boolean(//Nickname[@personid=$personid]/@nname)">
Для схожих проблем я обычно предпочитаю проверять непустые / непробельные значения:
<xsl:when test="normalize-space(//Nickname[@personid=$personid]/@nname)!=''">
Если вы используете клавишу типа <xsl:key name="nn" match="//Nickname" use="@personid"/>
, возможно также следующее:
<xsl:when test="normalize-space(key('nn',$personid)/@nname)!=''">
Последний не нуждается в переменной $personid
, но может напрямую работать с @personid
Person
, который вы проверяете ...