我需要用 xml 和 xslt 编写符号导数。所以我在 xml 中创建了一个数学函数树,xslt 必须派生函数的每个表达式。例如:“y = 2x^2 + 3x^5” 所以“dy/dx= (2*2)x^(2-1) + (3*5)^(5-1) = 4x + 15x^4 " 和 xml 会是这样的:
<function>
<expression>
<coefficient>2</coefficient>
<variable>x</variable>
<exponent>2</exponent>
<sign>+</sign> <!-- Sign operating with the next expression (+,-,x,/) -->
</expression>
<expression>
<coefficient>3</coefficient>
<variable>x</variable>
<exponent>5</exponent>
<sign></sign>
</expression>
</function>
我遇到的问题是我想在 xslt 中声明一个变量 i 所以当 expression[i]/sign="+" 它执行链式规则并且 i=i+1 所以它转到下一个表达式时,我可以这样做使用 a for-each
,但是当 expression[i]/sign="x" 我需要执行乘积规则并跳转两步所以 i=i+2,因为如果 i=3 则 "expression[3] x expression[4]" ,所以我不想再推导表达式[4]。那么我怎么能用 xslt 做到这一点,因为我不能修改变量的值呢?如果我想表达 4x^3(5x^2+2x^7) 那么我必须改变我的 xml 结构,怎么可能是 xslt 代码?