Это сортировка атрибутов и дочерних элементов CompanyStats, но нет атрибутов и только один дочерний элемент (и два узла пробела) дочерних элементов этого элемента, поэтому все, что он делает, - это перенос пустого пространства до или после элемента.Я подозреваю, что вы хотите применить сортировку по уровню:
<xsl:template match="CompanyLocation">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="*">
<xsl:sort select="UserContent/StandardSales/Sales" order="descending"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
Но на самом деле мне не ясно, чего вы хотите, возможно, вы могли бы отредактировать свой вопрос, чтобы добавить результат, который вы хотите в этом случае.
ОБНОВЛЕНИЕ даже после разъяснений в комментариях вам нелегко помочь:
<CompanyLocation="London">
не правильно сформирован, предположительно отсутствует имя атрибута?
<Totalworkers>20
неправильно сформирован, отсутствует конечный тег,
и другие ошибки в файле.Я думаю, что исправленный ввод и рабочая таблица стилей приведены ниже.
<Company>
<CompanyStats>
<CompanyLocation id="London">
<OfficeID>1</OfficeID>
<Totalworkers>20</Totalworkers>
<NoCleaners>2</NoCleaners>
<TopSales>
<UserID>4</UserID>
<Sales>43</Sales>
<Description> Highest sales this quater</Description>
</TopSales>
<LowestSales>
<UserID>12</UserID>
<Sales>26</Sales>
<Description> Lowest sales this quater</Description>
</LowestSales>
<UserContent>
<ID>4</ID>
<FirstName>Jack</FirstName>
<Surname>Black</Surname>
<StartDate>11/11/2011</StartDate>
<StandardSales>
<SSID>0</SSID>
<Sales>64</Sales>
<SalesManager>Steve Hewitt</SalesManager>
</StandardSales>
<BusinessSales>
<BSID>0</BSID>
<Sales>64</Sales>
<SalesManager>Steve Hewitt</SalesManager>
</BusinessSales>
</UserContent>
</CompanyLocation>
<CompanyLocation id="Paris">
<OfficeID>1</OfficeID>
<Totalworkers>20</Totalworkers>
<NoCleaners>2</NoCleaners>
<TopSales>
<UserID>4</UserID>
<Sales>43</Sales>
<Description> Highest sales this quater</Description>
</TopSales>
<LowestSales>
<UserID>12</UserID>
<Sales>26</Sales>
<Description> Lowest sales this quater</Description>
</LowestSales>
<UserContent>
<ID>4</ID>
<FirstName>Jack</FirstName>
<Surname>Black</Surname>
<StartDate>11/11/2011</StartDate>
<StandardSales>
<SSID>0</SSID>
<Sales>122</Sales>
<SalesManager>Steve Hewitt</SalesManager>
</StandardSales>
<BusinessSales>
<BSID>0</BSID>
<Sales>64</Sales>
<SalesManager>Steve Hewitt</SalesManager>
</BusinessSales>
</UserContent>
</CompanyLocation>
</CompanyStats>
</Company>
и таблица стилей, главное изменение - атрибут выбора xsl: sort и тип данных = "число" для получения числовой сортировки.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="CompanyStats">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="CompanyLocation">
<xsl:sort data-type="number" select="UserContent/StandardSales/Sales" order="descending"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>