0
我想爲每個CDS/CD節點在COMS級別的輸入XML中添加值。問題是我想只能爲ID爲'A'或'B'的標籤完成總和。標籤'C'下的值不應該在總和中計算。使用XSLT代碼添加特定XML標記
<?xml version="1.0"?>
<root>
<CDS>
<CD>
<COMS>
<COMP>
<ID>A</ID>
<VAL>1.220</VAL>
</COMP>
<COMP>
<ID>B</ID>
<VAL>2.220</VAL>
</COMP>
<COMP>
<ID>C</ID>
<VAL>5.220</VAL>
</COMP>
</COMS>
</CD>
</CDS>
<CDS>
<CD>
<COMS>
<COMP>
<ID>A</ID>
<VAL>5.2</VAL>
</COMP>
<COMP>
<ID>B</ID>
<VAL>6.5</VAL>
</COMP>
<COMP>
<ID>C</ID>
<VAL>10.5</VAL>
</COMP>
</COMS>
</CD>
</CDS>
<CDS>
<CD>
<COMS>
<COMP>
<ID>A</ID>
<VAL>4.2</VAL>
</COMP>
<COMP>
<ID>B</ID>
<VAL>5.8</VAL>
</COMP>
<COMP>
<ID>C</ID>
<VAL>14.8</VAL>
</COMP>
</COMS>
</CD>
</CDS>
輸出XML:
<CDS>
<CD>
<COMS>
<COMP>
<SUM_VALUE>3.44</SUM_VALUE>
</COMP>
</COMS>
</CD>
<CD>
<COMS>
<COMP>
<SUM_VALUE>11.7</SUM_VALUE>
</COMP>
</COMS>
</CD>
<CD>
<COMS>
<COMP>
<SUM_VALUE>10</SUM_VALUE>
</COMP>
</COMS>
</CD>
</CDS>
我的XSLT代碼只試圖總結所有的值,並給出了最終的輸出。如果有人可以解釋如何在for:each循環中爲各個comp級別求和xml值,這將會很有幫助。
我最初跟這行代碼嘗試,但它增加了所有的值
您是否嘗試過使用內建求和函數? http://msdn.microsoft.com/en-us/library/ms256160(v=vs.110).aspx我不知道如何解決'C's與它tho – molbal 2014-10-28 09:14:39
內置函數sum()工程但它將所有標籤加起來。我只想要低於'A'和'B'而不是'C'的xml標籤的總和。 – Anirudh 2014-10-28 09:17:25
我想你可以用一個XPAth表達式來解決這個問題,就像Jerringon的答案一樣 – molbal 2014-10-28 09:18:41