He XML siguiente:XSLT de ordenación condicional
<Users>
<User Id="1">
<Name>abc</Name>
<LastName>d</LastName>
</User>
<User Id="2">
<Name></Name>
<LastName>ab</LastName>
</User>
<User Id="3">
<Name>a</Name>
<LastName>efg</LastName>
</User>
</Users>
Ahora ordenar los usuarios que usan siguiente plantilla:
<xsl:template match="Users">
<Users>
<xsl:for-each select="User">
<xsl:sort select="Name"/>
<xsl:sort select="LastName"/>
<User>
<xsl:attribute name="Id">
<xsl:value-of select="attribute::Id"/>
</xsl:attribute>
<Name>
<xsl:value-of select="Name"/>
</Name>
<LastName>
<xsl:value-of select="LastName"/>
</LastName>
</User>
</xsl:for-each>
</Users>
</xsl:template>
pero necesito clasificar, satisface wich siguiente condición: Ordenar por nombre. Si Nombre está vacío o nulo, necesito ordenar por Apellido. Por lo tanto, en XML producido necesito el siguiente orden: Usuario3, Usuario2, Usuario1.
Cualquier ayuda es apreciada.
PS: Yo uso ASP.NET 3.5
+1 para una buena pregunta. –