0
能否請您提供xslt代碼,以瞭解如何根據以下 xml得出結果的分組數據。預期結果應該是:如何根據XSLT中的關鍵值對hrs進行分組和總和
Year Week Tot Hrs Ben Hrs
2015 33 80.7 0
2015 34 120.7 0
提前感謝您的幫助
XML:
<?xml version="1.0" encoding="UTF-8"?>
-<wd:Report_Data xmlns:wd="urn:com.workday.report/TLB024_TEST">
-<wd:Report_Entry>
-<wd:PAYROLL_RESULT_LINE>
<wd:FISCAL_YEAR>2015</wd:FISCAL_YEAR>
<wd:FISCAL_WEEK>33</wd:FISCAL_WEEK>
<wd:TOT_HRS>40</wd:TOT_HRS>
<wd:BEN_HRS>0</wd:BEN_HRS>
</wd:PAYROLL_RESULT_LINE>
-<wd:PAYROLL_RESULT_LINE>
<wd:FISCAL_YEAR>2015</wd:FISCAL_YEAR>
<wd:FISCAL_WEEK>33</wd:FISCAL_WEEK>
<wd:TOT_HRS>0.07</wd:TOT_HRS>
<wd:BEN_HRS>0</wd:BEN_HRS>
</wd:PAYROLL_RESULT_LINE>
-<wd:PAYROLL_RESULT_LINE>
<wd:FISCAL_YEAR>2015</wd:FISCAL_YEAR>
<wd:FISCAL_WEEK>34</wd:FISCAL_WEEK>
<wd:TOT_HRS>40</wd:TOT_HRS>
<wd:BEN_HRS>0</wd:BEN_HRS>
</wd:PAYROLL_RESULT_LINE>
-<wd:PAYROLL_RESULT_LINE>
<wd:FISCAL_YEAR>2015</wd:FISCAL_YEAR>
<wd:FISCAL_WEEK>34</wd:FISCAL_WEEK>
<wd:TOT_HRS>0.07</wd:TOT_HRS>
<wd:BEN_HRS>0</wd:BEN_HRS>
</wd:PAYROLL_RESULT_LINE>
</wd:Report_Entry>
-<wd:Report_Entry>
-<wd:PAYROLL_RESULT_LINE>
<wd:FISCAL_YEAR>2015</wd:FISCAL_YEAR>
<wd:FISCAL_WEEK>33</wd:FISCAL_WEEK>
<wd:TOT_HRS>40</wd:TOT_HRS>
<wd:BEN_HRS>0</wd:BEN_HRS>
</wd:PAYROLL_RESULT_LINE>
-<wd:PAYROLL_RESULT_LINE>
<wd:FISCAL_YEAR>2015</wd:FISCAL_YEAR>
<wd:FISCAL_WEEK>34</wd:FISCAL_WEEK>
<wd:TOT_HRS>40</wd:TOT_HRS>
<wd:BEN_HRS>0</wd:BEN_HRS>
</wd:PAYROLL_RESULT_LINE>
</wd:Report_Entry>
-<wd:Report_Entry>
</wd:Report_Data>
XSLT:
這是XSLT代碼,我試過不能夠得到慾望結果。
<?xml version='1.0'?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wd="urn:com.workday.report/TLB024_TEST" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:template match="/|*">
<xsl:copy>
<xsl:apply-templates select="*" />
</xsl:copy>
</xsl:template>
<xsl:template match="wd:Report_Entry">
<File xmlns:xtt="urn:com.workday/xtt">
<xsl:for-each select="wd:PAYROLL_RESULT_LINE">
<Record>
<xsl:variable name="Group" select="../wd:PAYROLL_RESULT_LINE[((wd:FISCAL_YEAR=current()/wd:FISCAL_YEAR) and (wd:FISCAL_WEEK=current()/wd:FISCAL_WEEK)]" />
<xsl:if test="generate-id()=generate-id($Group[1])">
<xsl:copy>
<fiscal_year xtt:align="left"><xsl:value-of select="wd:FISCAL_YEAR"/></fiscal_year>
<fiscal_week xtt:align="left"><xsl:value-of select="wd:FISCAL_WEEK"/></fiscal_week>
<tot_hrs xtt:fixedLength="7" xtt:align="left"><xsl:value-of select="format-number(sum($Group/wd:TOT_HRS), '0.##')"/></tot_hrs>
<ben_hrs xtt:fixedLength="7" xtt:align="left"><xsl:value-of select="format-number(sum($Group/wd:BEN_HRS), '0.##')"/></ben_hrs>
<Filler><xsl:text>
</xsl:text></Filler>
</xsl:copy>
</xsl:if>
</Record>
</xsl:for-each>
</File>
</xsl:template>
</xsl:stylesheet>
你應該指出問的答案之前,你是怎麼試試... – AlphaB
我試着用這個代碼..不能夠得到理想的結果 – Sabari
你忘了告訴我們想要的結果... –