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>
私が抱えている問題は、変数 i を xslt で宣言したいので、expression[i]/sign="+" がチェーン ルールを実行し、i=i+1 で次の式に進むときに、これを実行できることです。ただし、for-each
expression[i]/sign="x" の場合、i=3 の場合は "expression[3] x expression[4]" であるため、積のルールを実行して i=i+2 の 2 つのステップをジャンプする必要があります。 、したがって、式[4]を再度導出したくありません。では、変数の値を変更できないため、どうすれば xslt でこれを行うことができますか? 4x^3(5x^2+2x^7) を表現したい場合は、xml 構造を変更する必要があります。xslt コードはどうすればよいでしょうか?