私はXMLを変換するためにXSLTを書いています。私はXpathに経験がなく、XMLが大きすぎて投稿できません。XPATH:コールテンプレートで変数を使用する方法
しかし、ここでは私の問題である:
このコードは:正常に動作します:それは右の上のコードの下に使われていたときに
その後<cac:testmathieu>
<xsl:variable name="lineAmount2" select="body:LineAmount * -1" />
<xsl:value-of select="../body:TaxTrans[body:TaxBaseAmount=$lineAmount2]/body:TaxAmount"/>
</cac:testmathieu>
を、なぜ以下のコードは、動作していない:
<xsl:call-template name ="TaxTotalLine">
<xsl:with-param name="TaxAmount" select="../body:TaxTrans[body:TaxBaseAmount=body:LineAmount*-1]/body:TaxAmount"></xsl:with-param>
</xsl:call-template>
2番目のコードは、最初の例のコードをマージしたものですか、間違っていますか?
私はあなたが<xsl:call-template name ="TaxTotalLine">
<xsl:with-param name="TaxAmount" select="../body:TaxTrans[body:TaxBaseAmount = current()/body:LineAmount*-1]/body:TaxAmount"></xsl:with-param>
</xsl:call-template>
はあなたに角括弧で述語を適用したTaxBaseAmout TaxTransの要素に、現在処理ノード(例えば任意の外側のテンプレートや用-それぞれ)のLineAmountを比較したいと思います
に関して第二のコードは 'TaxTotalLine'テンプレートを呼び出し、パラメータを渡しています。それは何ですか?私にテンプレートを見せて、私に教えてください。 – derloopkat
変数にbody:LineAmount * -1とパラメーターbody:LineAmount * -1がある場合は、変数のようにスペースを追加する必要があります。 –