我對xslt感到沮喪,並且有一個問題,我似乎無法找到答案。我將轉換應用於xml文件,然後使用fo將其輸出到.pdf。輸入文件(xml)來自計費系統,我們希望將其輸出爲可作爲賬單郵寄給客戶的pdf。我正在使用xslt 1.0,而fop正在生成pdf。我無法將來自2個不同父母(CHARGES和OTHER_CHARGES)的類似命名的節點(TAX)分組。這裏有一個例子:
(輸入文件)對來自不同父母的XML節點進行分組
<BILL>
<CHARGES PARENT_ID="123456" CUSTOMER="MR. JONES">
<CHARGE NAME="CHARGE1" AMOUNT="10000">
<TAXES>
<TAX NAME="FEDERAL" AMOUNT="200"/>
<TAX NAME="STATE" AMOUNT="50">
</TAXES>
</CHARGE>
</CHARGES>
<OTHER_CHARGES PARENT_ID="123456" CUSTOMER="MR_JONES">
<OTHER_CHARGE NAME="OTHER_CHARGE1">
<TAXES>
<TAX NAME="FEDERAL" AMOUNT="150"/>
</TAXES>
</OTHER_CHARGE>
</OTHER_CHARGES>
</BILL>
我要爲項目總稅收結算,使PDF輸出看起來像這樣
稅
聯邦 - $ 350
州 - $ 50
雖然來自不同的節點,但總稅款按名稱和總計分組。我對鍵和分組的理解有限,但我似乎無法找到一個能夠輕鬆轉換我腦中的開關的神奇例子。
您可以發佈您目前使用的xslt嗎? TAX元素的NAME屬性是否受限於一組較小的值? – Chris 2011-03-07 16:01:38
那麼爲什麼分組?你只需要'sum(*/*/TAXES/TAX [@NAME ='FEDERAL']/@ AMOUNT)'和sum(*/*/TAXES/TAX [@NAME ='STATE']/@ AMOUNT)' 。什麼應該分組? – Flack 2011-03-07 16:04:45
@Fack - 這個例子被簡化了,所以可能不止FEDERAL或STATE。可能會有一些我們從未聽說過的稅收。這就是爲什麼我試圖將所有名爲tax的節點組合在一起。如果我知道所有可能適用的不同稅種,那麼我會樂意嘗試不分組。 – theUncannyValley 2011-03-07 16:10:35