我需要一个循环到特定节点
有以下XML:
position()
并计算这些节点的总和。例如:
- 如果我的位置是2,那么节点[1] + 节点[2]
- 如果我的位置是5,则节点[1] + 节点[2] + 节点[3] + 节点[4] + 节点[5]
有以下XML:
<?xml-stylesheet type="text/xsl" href="sum.xsl"?><root><FIDetail Node1="5" Node2="2" Node3="9" Node4="5" Node5="1" Node6="6" Node7="5" Node8="5" Node9="12" Node10="6" Node11="4" Node12="8" Node13="4" Node14="6" Node15="5" Node16="6" Node17="2" Node18="7" Node19="4" Node20="5" Node21="4" Node22="6" Node23="4" Node24="11" Node25="5" Node26="1" Node27="7" Node28="1" Node29="4" Node30="2" Node31="5" Node32="2" Node33="6" Node34="4" Node35="7" Node36="7" Node37="9" Node38="10" Node39="3" Node40="8" Node41="8" Node42="5" Node43="5" Node44="2" Node45="5" Node46="12" Node47="9" Node48="14" Node49="18" Node50="1"/></root>
我正在尝试展示以下输出
5 Node1的总和
7 Node1和Node2的总和
16 Node1、Node2和Node3的总和
.... Node1到Node50的总和
请问有人能帮我写出对应的XSL吗?
目前不起作用的XSL代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:for-each select="//FIDetail/@*">
<br/>
<xsl:value-of select="sum(preceding-sibling::*) + ."/>
=
<xsl:for-each select="preceding-sibling::*">
<xsl:value-of select="name()"/> +
</xsl:for-each>
<xsl:value-of select="name()"/>
</xsl:for-each>
</xsl:template>