2010-07-01 8 views
2

할 수 있습니다 둥지 XSL을 중첩는 <xsl:if> & <xsl:when>

+4

복잡한 논리에 대한 XSL을 사용하여 ... 보통 문제가 발생할 것이다 : 나는 그 권리를 참조하는 경우에만 (param/@id='1' and param/value='XML') or (param/@id='2' and param/value='HTTP') or (param/@id='3' and param/value='Y') 경우 ... 테스트 값으로 그렇게하려고하면 <call-template>를 실행하려면. :-) –

+1

어떻게 작동합니까? 'param/@ id = '1''이 참이면'param/@ id ='2'' ... 거짓이됩니다; –

답변

7

시도하지 않고 : <xsl:when><xsl:choose> 사이에 <xsl:if>의 자식 노드가 될 수 없다고 생각합니다. 그러나, 당신은 무엇을하려고합니까?

<xsl:if test="(param/@id='1' and param/value='XML') or (param/@id='2' and param/value='HTTP') or (param/@id='3' and param/value='Y')"> 
    <xsl:call-template name="buildPayload"/> 
</xsl:if> 
1

그래, 작동하지 않는 것 같습니다. 언제든지 시험에 시험에 "and"및 "or"를 추가 할 수 있습니다.

0

XPath에서 읽을 수 있습니다. 이 선택을 돕기 위해 XPath 표현식과 노드 선택 구문을 사용할 수 있어야합니다.

Visual Studio에서 도구와 같은 시각적 XSLT 디자이너를 사용해 볼 수도 있습니다. 예를 들어 Visual Studio는 IntelliSense와 XSLT에 대한 유효성 검사를 제공합니다.

관련 문제