我需要TXLifeRequest
在下面的 xml 中添加一个额外的部分以汇总付款金额。
<?xml version="1.0" encoding="utf-8"?>
<TXLife xmlns="http://ACORD.org/Standards/Life/2">
<TXLifeRequest>
<FundCode>LTRT00</FundCode>
<AccountDescription>CWA xxx</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>300.000000000</PaymentAmt>
<ReversalInd>0</ReversalInd>
</TXLifeRequest>
<TXLifeRequest>
<FundCode>LTRW00</FundCode>
<AccountDescription>CWA xxx</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>300.000000000</PaymentAmt>
<ReversalInd>0</ReversalInd>
</TXLifeRequest>
<TXLifeRequest>
<FundCode>LTRW00</FundCode>
<AccountDescription>CWA xxx</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>300.000000000</PaymentAmt>
<ReversalInd>0</ReversalInd>
</TXLifeRequest>
<TXLifeRequest>
<FundCode>LUL500</FundCode>
<AccountDescription>CWA xxx</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>800.000000000</PaymentAmt>
<ReversalInd>1</ReversalInd>
</TXLifeRequest>
</TXLife>
总结 PaymentAmt 的标准是寻找组合 TransExeDate , AccountNumber and ReversalInd
。因此,当我应用以下 xslt PaymentAmt 时,基于这些标准
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" xmlns:ns="http://ACORD.org/Standards/Life/2">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="detKey7s" match="//ns:TXLifeRequest"
use="concat(generate-id(..), ns:TransExeDate, '+', ns:FundCode, '+', ns:ReversalInd)"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/ns:TXLife">
<xsl:element name="TXLife" namespace="http://ACORD.org/Standards/Life/2">
<xsl:for-each select="ns:TXLifeRequest[generate-id() = generate-id(key('detKey7s',
concat(generate-id(..), ns:TransExeDate, '+', ns:FundCode, '+', ns:ReversalInd)
)
)
]
">
<xsl:copy>
<xsl:variable name="vDataGroup" select=
"key('detKey7s', concat(generate-id(..),ns:TransExeDate, '+', ns:FundCode, '+', ns:ReversalInd))"/>
<xsl:apply-templates select="./*"></xsl:apply-templates>
<xsl:element name="TotalAmount" namespace="http://ACORD.org/Standards/Life/2">
<xsl:value-of select="sum($vDataGroup/ns:PaymentAmt)"/>
</xsl:element>
</xsl:copy>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
因此,在应用上述 xslt 之后,我将总结TXLifeRequest
xml 参见 <TotalAmount>600</TotalAmount>
.
<TXLife xmlns="http://ACORD.org/Standards/Life/2">
<TXLifeRequest>
<FundCode>LTRT00</FundCode>
<AccountDescription>CWA – NB+U</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>300.000000000</PaymentAmt>
<ReversalInd>0</ReversalInd>
<TotalAmount>300</TotalAmount>
</TXLifeRequest>
<TXLifeRequest>
<FundCode>LTRW00</FundCode>
<AccountDescription>CWA – NB+U</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>300.000000000</PaymentAmt>
<ReversalInd>0</ReversalInd>
<TotalAmount>600</TotalAmount>
</TXLifeRequest>
<TXLifeRequest>
<FundCode>LUL500</FundCode>
<AccountDescription>CWA – NB+U</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>800.000000000</PaymentAmt>
<ReversalInd>1</ReversalInd>
<TotalAmount>800</TotalAmount>
</TXLifeRequest>
</TXLife>
现在的问题是我如何在总结部分下添加一个额外的部分?所以最后 xml 应该如下所述
<TXLifeRequest>
<FundCode>LTRT00</FundCode>
<AccountDescription>CWA – NB+U</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>300.000000000</PaymentAmt>
<ReversalInd>0</ReversalInd>
<TotalAmount>300</TotalAmount>
</TXLifeRequest>
<TXLifeRequest>
<FundCode>LTRW00</FundCode>
<AccountDescription>CWA – NB+U</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>300.000000000</PaymentAmt>
<ReversalInd>0</ReversalInd>
<TotalAmount>600</TotalAmount>
</TXLifeRequest>
<TXLifeRequest>
<SummedUP>LTRW00</SummedUP>
</TXLifeRequest>
<TXLifeRequest>
<FundCode>LUL500</FundCode>
<AccountDescription>CWA – NB+U</AccountDescription>
<CurrencyTypeCode>840</CurrencyTypeCode>
<TransExeDate>2013-04-20</TransExeDate>
<AccountNumber>34142</AccountNumber>
<PaymentAmt>800.000000000</PaymentAmt>
<ReversalInd>1</ReversalInd>
<TotalAmount>800</TotalAmount>
</TXLifeRequest>
我很惊讶在上面提到的总结部分之后添加一个部分。请让我知道我该如何进行。有任何想法吗 ??
谢谢,马杜厘米