は、XSLT 1.0オプション...
XSLT 1.0 stylsheet
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kPayloads" match="payload" use="concat('N',name,'D',date)"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="payloads">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="payload[generate-id() = generate-id(key('kPayloads', concat('N',name,'D',date)))]"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
XML入力(整形)
<payloads>
<payload>
<name>1</name>
<date>2</date>
</payload>
<payload>
<name>1</name>
<date>2</date>
</payload>
<payload>
<name>10</name>
<date>20</date>
</payload>
<payload>
<name>1</name>
<date>2</date>
</payload>
</payloads>
XML出力です
<payloads>
<payload>
<name>1</name>
<date>2</date>
</payload>
<payload>
<name>10</name>
<date>20</date>
</payload>
</payloads>
編集
このXSLT 2.0スタイルシートも同じ出力を生成します...
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="payloads">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:for-each-group select="payload" group-by="concat('N',name,'D',date)">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答えはイエスですが、それを超えて、それはどうかに依存しますXSLT 1.0または2.0を使用しています。 Googleは「XSLTグループ化」(または、XSLTグループのお気に入りのインデックスの索引でそれを探してください)を利用すれば、情報のヒープを見つけることができます。 –