2017-12-24 30 views
0

XML을 변환하기 위해 XSLT를 작성 중입니다. Xpath에 익숙하지 않아 XML이 너무 커서 게시 할 수 없습니다. 이 코드는XPATH : 호출 템플릿에 변수를 사용하는 방법

: 잘 작동 :

<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> 
:

다음
<cac:testmathieu>   
    <xsl:variable name="lineAmount2" select="body:LineAmount * -1" />    
    <xsl:value-of select="../body:TaxTrans[body:TaxBaseAmount=$lineAmount2]/body:TaxAmount"/> 
</cac:testmathieu> 

가 바로 위의 코드를 아래에 사용되는 경우에, 왜 작동하지 않는 아래의 코드는, 여기

그러나

내 문제입니다

두 번째 코드는 첫 번째 예제의 코드를 병합 한 것입니까, 아니면 제가 잘못 생각합니까?

+0

이 두 번째 코드 템플릿'TaxTotalLine'를 호출하고 매개 변수를 전달한다 간주한다. 그것은 무엇입니까? 나에게 템플릿을 보여줘. 나는 너에게 말할거야. – derloopkat

+0

변수에 body : LineAmount * -1 및 매개 변수 본문 : LineAmount * -1이 있으면 변수에 공백을 추가해야합니다. 제 대답을주십시오. –

답변

0

나는 당신이 대괄호로 술어를 적용한 TaxTrans 요소의 TaxBaseAmout에 현재 처리 노드의 LineAmount (예를 들면 어떤 외부 템플릿 또는를위한 각)을 비교하는

<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> 

을 원한다고 생각 .

0

감사합니다.

이것은 "현재()"와 대괄호의 조합이었습니다.

많은 감사를드립니다!

종류는

마티유