xslt 1.0 for-each中的分组求和

时间:2019-08-06 13:37:05

标签: xslt xslt-1.0

先谢谢您。我是XSLT的初学者,无法根据ns2:PremDate总结出ns2:RemPremAmt和ns2:PremAmt。

这是输入:

  <ns2:Fee1>
   <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2009-07-17</ns2:PremDate>
          <ns2:RemPremAmt>5000</ns2:RemPremAmt>
          <ns2:PremAmt>155</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
   <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2009-08-17</ns2:PremDate>
          <ns2:RemPremAmt>1000</ns2:RemPremAmt>
          <ns2:PremAmt>1111</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
    <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2009-08-17</ns2:PremDate>
          <ns2:RemPremAmt>100</ns2:RemPremAmt>
          <ns2:PremAmt>111</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
    <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2009-09-17</ns2:PremDate>
          <ns2:RemPremAmt>200</ns2:RemPremAmt>
          <ns2:PremAmt>222</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
    <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2016-04-18</ns2:PremDate>
          <ns2:RemPremAmt>230</ns2:RemPremAmt>
          <ns2:PremAmt>230</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
    <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2016-05-18</ns2:PremDate>
          <ns2:RemPremAmt>2540</ns2:RemPremAmt>
          <ns2:PremAmt>2540</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
  </ns2:Fee1>

我已经尝试了for-each,但这没用。

这是预期的结果。从输出中可以看到,只有2009-08-17的所有PremDate都具有其PremAmt和RemPremAmt的总和。在XSLT 1.0中有没有办法做到这一点?

  <ns2:Fee1>   
   <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2009-07-17</ns2:PremDate>
          <ns2:RemPremAmt>5000</ns2:RemPremAmt>
          <ns2:PremAmt>155</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
   <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2009-08-17</ns2:PremDate>
          <ns2:RemPremAmt>1300</ns2:RemPremAmt>
          <ns2:PremAmt>1444</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
    <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2016-04-18</ns2:PremDate>
          <ns2:RemPremAmt>230</ns2:RemPremAmt>
          <ns2:PremAmt>230</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
    <ns2:Fee>
      <ns2:OLifEExtension>
        <ns2:PremiumHistoryExtension>
          <ns2:PremDate>2016-05-18</ns2:PremDate>
          <ns2:RemPremAmt>2540</ns2:RemPremAmt>
          <ns2:PremAmt>2540</ns2:PremAmt>
        </ns2:PremiumHistoryExtension>
      </ns2:OLifEExtension>
    </ns2:Fee>
  </ns2:Fee1>

0 个答案:

没有答案