Я бы начал с того, что у меня есть ключ, например:
<xsl:key name="kQTY" match="QTY" use="."/>
Тогда я бы сохранил максимальный QTY в переменной, например:
<xsl:variable name="maxQTY">
<xsl:for-each select="//item">
<xsl:sort select="key('kQTY', QTY)" order="descending"/>
<xsl:if test="position()=1">
<xsl:value-of select="QTY"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
Затем в шаблоне, который соответствует узлу OUTPUT
, я бы отфильтровал элемент, который содержит максимальное количество QTY, например:
<xsl:template match="OUTPUT">
<Rowset>
<xsl:apply-templates select="item[QTY=$maxQTY]"/>
</Rowset>
</xsl:template>
Затем шаблон, необходимый для фильтрации содержимого элемента:
<xsl:template match="item">
<xsl:apply-templates select="MACHINE,BATCH,QTY"/>
</xsl:template>
Несколько подходящих шаблонов для очистки
<xsl:template match="TANK_DETAILS">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="TABLES">
<Rowsets>
<xsl:apply-templates/>
</Rowsets>
</xsl:template>
и шаблон удостоверения личности:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
Вся таблица стилей выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:strip-space elements="*"/>
<xsl:output indent="yes" omit-xml-declaration="yes"/>
<xsl:key name="kQTY" match="QTY" use="."/>
<xsl:variable name="maxQTY">
<xsl:for-each select="//item">
<xsl:sort select="key('kQTY', QTY)" order="descending"/>
<xsl:if test="position()=1">
<xsl:value-of select="QTY"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="OUTPUT">
<Rowset>
<xsl:apply-templates select="item[QTY=$maxQTY]"/>
</Rowset>
</xsl:template>
<xsl:template match="item">
<xsl:apply-templates select="MACHINE,BATCH,QTY"/>
</xsl:template>
<xsl:template match="TANK_DETAILS">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="TABLES">
<Rowsets>
<xsl:apply-templates/>
</Rowsets>
</xsl:template>
</xsl:stylesheet>
Смотрите это в действии здесь .