2009-12-15 4 views
0

때 출력을 작동하지 않는 직접 예를 들어, 노드의 값 : XSL 확인 변수는

<fo:inline><xsl:value-of select="isEnabled" /></fo:inline> 

내가 "true"를 PDF로 출력 올바른 문자열을 얻을 ..

하지만 경우 변수에 직접 isEnabled 값을 설정하고 비교를 시도합니다. 노드가 존재하지 않는 것처럼 작동하지 않는 것 같습니다.

<xsl:variable name="isEnabled" select="isEnabled" /> 

<xsl:choose> 
<xsl:when test="$isEnabled = 'true'"> 
    dostuff... 

그것은 값이 올바르게 여기에 수신되지 않습니다 및 테스트가 항상

어떤 아이디어를 실패하는 것 같다?

+0

''할 때 무슨 일이 일어날까요? –

+0

는 "true"라는 텍스트를 표시합니다. – Ayrad

+0

내 잘못 : 나는'$ isEnabled'를 의미했습니다. –

답변

1

어때요?

<xsl:variable name="isEnabled"> 
    <xsl:value-of select="isEnabled" /> 
</xsl:variable> 

<xsl:when test="normalize-space($isEnabled)='true'"> 
+0

부울 값을 실제로 검사하지 않고 "true"라는 문자열을 실제로 확인하지 않으면 작동합니까? – Ayrad

+1

문자열 값에 대해 테스트중인 경우에 맞게 편집됩니다. – rsp

3

isEnabled에 공백이 있습니까?

<isEnabled>true</isEnabled> 

<isEnabled>true </isEnabled> 

또는

<isEnabled> 
true 
</isEnabled> 

은 테스트에 대한 다른 결과를 줄 것이다. 첫 번째 것은 통과해야하고, 다음 두 번째는 통과하지 못할 것입니다. 그럼에도 불구하고 값의 사용시 텍스트가 "사실"로 렌더링되는 것처럼 보일 수 있습니다.

+0

아, 어쩌면 나는 공간 함수 또는 트림을 무시해야합니다. – Ayrad

0

ok 그것은 xsl 문제가 아니었지만 문제는 훨씬 이전이었습니다. 변환을위한 xml을 생성하는 속도 템플릿에서. 이 질문을 어떻게 닫을 수 있습니까?