以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [求助]挺困扰人的一个问题,关于数值累计的  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=8092)


--  作者:greatneal
--  发布时间:6/3/2004 10:57:00 PM

--  [求助]挺困扰人的一个问题,关于数值累计的
数据源文件如下:
dat.xml

<?xml version="1.0" encoding="gbk"?>
<?xml-stylesheet type="text/xsl" href="print.xsl"?>
<预告>
    <客户>
        <商品信息>
            <商品>
                <名称>AAA1</名称>
                <底价>20000</底价>
            </商品>
            <商品>
                <名称>AAA2</名称>
                <底价>80000</底价>
            </商品>
            <商品>
                <名称>AAA3</名称>
                <底价>150000</底价>
            </商品>
            <商品>
                <名称>AAA4</名称>
                <底价>20000</底价>
            </商品>
        </商品信息>
        <备注>客户AAA</备注>       
    </客户>
    <客户>
        <商品信息>
            <商品>
                <名称>BBB1</名称>
                <底价>500000</底价>
            </商品>
            <商品>
                <名称>BBB2</名称>
                <底价>800000</底价>
            </商品>
        </商品信息>
        <备注>客户BBB</备注>
    </客户>
    <客户>
        <商品信息>
            <商品>
                <名称>CCC1</名称>
                <底价>50000000</底价>
            </商品>
            <商品>
                <名称>CCC2</名称>
                <底价>80000000</底价>
            </商品>
            <商品>
                <名称>CCC3</名称>
                <底价>15000000000</底价>
            </商品>
        </商品信息>
        <备注>客户CCC</备注>
    </客户>
</预告>


通过print.xsl生成需要的格式,但是要有一些计算。
我想要的结果如下:
<Bks>
<Bk>
   <Row>24</Row>
   <Row>46</Row>
   <Row>69</Row>
</Bk>
</Bks>

说明:24,46,69的意义,

24 = 20(页内固定偏移量)+ 4(第一个“客户”元素的“商品”个数)+ 0(初始值)

46 = 20(页内固定偏移量)+ 2(第二个“客户”元素的“商品”个数)+ 24(上一个记录的打印位置)

69 = 20(页内固定偏移量)+ 3(第三个“客户”元素的“商品”个数)+ 46(上一个记录的打印位置)

“客户”元素的“商品”个数比较好计算,可以用count(商品信息/商品)就可以,再加页内固定偏移量也好办,那就是count(商品信息/商品) + 20。但是怎么用xsl实现累计呢?


--  作者:孤独
--  发布时间:6/3/2004 11:21:00 PM

--  
<xsl:variable name='c1><xsl:value-of select="count(客户[(position()=1]/商品信息/商品)"></xsl:variable>
<xsl:variable name='c2'>><xsl:value-of select="count(客户[(position()=2]/商品信息/商品)"></xsl:variable>
<xsl:variable name='c3'>><xsl:value-of select="count(客户[(position()=3]/商品信息/商品)"></xsl:variable>
<xsl:value-of select="$c1+20">
<xsl:value-of select="$c1+20+$c2">
<xsl:value-of select="$c1+20+$c2+$c3">
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
4,390.015ms