0
我有一個要求,我需要省略重複的記錄。考慮下面XSL刪除重複記錄
下面的示例是輸入
<ExchangeRates>
<Rate> <!--The exchange rates -->
<SourceCurrency>INR</SourceCurrency>
<TargetCurrency>USD</TargetCurrency>
<ConversionFactor>60.2</ConversionFactor>
</Rate>
<Rate>
<SourceCurrency>INR</SourceCurrency>
<TargetCurrency>USD</TargetCurrency>
<ConversionFactor>58.2</ConversionFactor>
</Rate>
<Rate>
<SourceCurrency>YEN</SourceCurrency>
<TargetCurrency>INR</TargetCurrency>
<ConversionFactor>.52</ConversionFactor>
</Rate>
<Rate>
<SourceCurrency>SAR</SourceCurrency>
<TargetCurrency>INR</TargetCurrency>
<ConversionFactor>16.50</ConversionFactor>
</Rate>
<Rate>
<SourceCurrency>SAR</SourceCurrency>
<TargetCurrency>INR</TargetCurrency>
<ConversionFactor>16.50</ConversionFactor>
</Rate>
</ExchangeRates>
現在我要做的是去除所有重複。以及如果有同一對Source和TargetCurrency,我想先發送第一條記錄並放棄其他記錄。
輸出shud像
<ExchangeRates>
<Rate>
<SourceCurrency>INR</SourceCurrency>
<TargetCurrency>USD</TargetCurrency>
<ConversionFactor>60.2</ConversionFactor>
</Rate>
<Rate>
<SourceCurrency>YEN</SourceCurrency>
<TargetCurrency>INR</TargetCurrency>
<ConversionFactor>.52</ConversionFactor>
</Rate>
<Rate>
<SourceCurrency>SAR</SourceCurrency>
<TargetCurrency>INR</TargetCurrency>
<ConversionFactor>16.50</ConversionFactor>
</Rate>
</ExchangeRates>
我發現,下面的XSLT刪除重複。即。如果內部元素完全相同。 下面的代碼可以幫助我輕鬆地避免重複。它根據外部標籤內的內容識別重複項。
但我想xslt刪除記錄如果匯率來自同一對貨幣但多個ConversionFactors。
<?xml version="1.0" encoding="UTF-8"?>
<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:if test="not(node()) or not(preceding-sibling::node()[.=string(current())])">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
如果發生多次,我需要用USD-> INR降低匯率。只轉發第一個匯率。
我可以在實現此目標方面獲得一些幫助。
乾杯
Reji
哇..謝謝你的朋友。這就像魅力一樣! – user2729074 2014-12-03 10:21:07
好用的Muenchian分組,但''xsl:for-each select =「Rate [count(。| key('currencyPair',concat(SourceCurrency,'',TargetCurrency))[1])= 1]」>'可以縮寫爲' '。 –
2014-12-03 11:25:40
哦,是的..謝謝:) – 2014-12-03 11:36:44