以下の入力にはXSLを書く必要があります。xml - 期待される出力には、属性(キー)の値が最大のクラスター要素が必要です。XSLT - リスト内の他の要素よりも最大の属性値を持つ要素をコピーする
入力:
<ProductList>
<Product ProductId="123">
<ClusterList>
<Cluster Key="1" Price="100.00"/>
<Cluster Key="3" Price="200.00"/>
<Cluster Key="2" Price="300.00"/>
</ClusterList>
</Product>
<Product ProductId="456">
<ClusterList>
<Cluster Key="11" Price="100.00"/>
<Cluster Key="33" Price="200.00"/>
<Cluster Key="22" Price="300.00"/>
</ClusterList>
</Product>
<ProductList>
予想される出力:
<ProductList>
<Product ProductId="123">
<ClusterList>
<Cluster Key="3" Price="200.00"/>
</ClusterList>
</Product>
<Product ProductId="456">
<ClusterList>
<Cluster Key="33" Price="200.00"/>
</ClusterList>
</Product>
<ProductList>
そして、ここで私が書かれているXSLがあるが、:(
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/ClusterList/Cluster">
<xsl:variable name="Max">
<xsl:value-of select="/ClusterList/Cluster[not(preceding-sibling::Cluster/@Key >= @Key) and not(following-sibling::Cluster/@Key > @Key)]/@Key" />
</xsl:variable>
<xsl:if test="@Key=$Max">
<xsl:copy>
<xsl:apply-templates select="@*" />
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
** 1。**どのXSLTプロセッサを使用していますか? ** 2。**ネクタイの場合の結果はどうでしょうか? –