Попробуйте это:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:my="DotNetNuke/UserDefinedTable">
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="node()">
<xsl:sort select="my:productDesignRating +
my:productPriceRating +
my:productPerformanceRating"
data-type="number"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Это просто упрощенный шаблон идентификации (без обработки каких-либо атрибутов), но с применением числовой сортировки к сумме значений 3 указанных дочерних элементов - если ониприсутствует.
Обратите особое внимание на использование атрибута data-type
, позволяющего указать, что база сортировки должна быть числами, поэтому порядок здесь равен 6,9,11 (для строк, который по умолчанию будетбыть 11,6,9)…
[Чтобы изменить порядок, просто добавьте атрибут order="descending"
]