2012-10-01 2 views
2

나는 참 또는 거짓을 확인하고 특정 조치를 취할 2 가지 조건이 있습니다.여러 xsl 조건을 선택하십시오

여기 내 코드입니다.

<xsl:variable name="hac" select="Hac1"/> 



<xsl:choose> 
    <xsl:when test="$hac= 'false'"> 
    <p style="display:inline">Hac1: </p><input type="checkbox" disabled="disabled" > 
</xsl:when> 
<xsl:otherwise> 
    <p>HACCP: </p><input type="checkbox" disabled="disabled" checked="checked"> 
</xsl:otherwise> 
</xsl:choose> 

<xsl:variable name="glo1" select="Gloves"/> 
    <xsl:choose> 
    <xsl:when test1="$glo1= 'false'"> 
    <p style="display:inline">Gloves: </p><input type="checkbox" disabled="disabled" > 
</xsl:when> 
<xsl:otherwise> 
    <p>Gloves: </p><input type="checkbox" disabled="disabled" checked="checked"> 
</xsl:otherwise> 
</xsl:choose> 

이것은 내 장갑이 아닌 내 Hac1 만 표시하며, 문제가 무엇인지 알 수 없습니다.

답변

1

XSLT에서 직접 복사/붙여 넣기를한다고 가정하면 몇 가지 오류가 발생하므로 실제로 얻은 것이 놀랍습니다. <input> 태그

네는

<input type="checkbox" disabled="disabled" /> 

그런 다음 당신이 잘못 <xsl:when test1=...이 ... 그들의 폐쇄 누락, 그래서 예를 들면 ... 하나 하나에 />>에서 마지막 부분을 변경할 수 있습니다. 그것은

<xsl:when test="$glo1= 'false'"> 
+0

내가 폐쇄 자신을 발행하지만 보지 못했다 발견 test1 이름, 너무 사소한 문제에 너무 많은 시간을 낭비 했어 정말 고마워. – Aleks

+0

@Aleks, 환영합니다.하지만 XSLT를 구문 분석하는 데 사용하고있는 질문을해야합니까? Dimitre가 지적한대로 준수하는 모든 XSLT 프로세서는 사용자가 제공 한 XSLT를 ** 아무 것도 ** 생성하지 않아야합니다. – freefaller

+0

http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog : D – Aleks

1

제공되는 XSLT 코드는 오류를 발생한다 명백한 오류의 수와 호환되는 모든 XSLT 프로세서 (또는 XML 파서)가 아니라 ... <xsl:when test=...합니다 (1의 부족주의)해야한다 전혀 출력을 생성 :

<input> 요소가 폐쇄되지
  1. -이 전체 스타일이 아닌 잘 구성된 XML 문서를 수컷.

  2. 명령어는 "test1"이라는 속성을 가질 수 없으며 "test"속성 만 허용됩니다. 나는이 두 가지 오류를 정정 할 때

는, 변환은 이제입니다 :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="/*"> 
    <xsl:variable name="hac" select="Hac1"/> 

    <xsl:choose> 
     <xsl:when test="$hac= 'false'"> 
     <p style="display:inline">Hac1: </p><input type="checkbox" disabled="disabled" /> 
    </xsl:when> 
    <xsl:otherwise> 
     <p>HACCP: </p><input type="checkbox" disabled="disabled" checked="checked"/> 
    </xsl:otherwise> 
    </xsl:choose> 

    <xsl:variable name="glo1" select="Gloves"/> 
    <xsl:choose> 
     <xsl:when test="$glo1= 'false'"> 
     <p style="display:inline">Gloves: </p><input type="checkbox" disabled="disabled" /> 
     </xsl:when> 
     <xsl:otherwise> 
      <p>Gloves: </p><input type="checkbox" disabled="disabled" checked="checked"/> 
     </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 
</xsl:stylesheet> 

과 정상 보이는 결과를 생성합니다.

(없음이 제공되지 않았습니다!)이 XML 문서에 적용 :

<t> 
<Hac1>true</Hac1> 
<Floves>false</Floves> 
</t> 

결과가입니다 :

<p>HACCP: </p> 
<input type="checkbox" disabled="disabled" checked="checked"/> 
<p>Gloves: </p> 
<input type="checkbox" disabled="disabled" checked="checked"/> 
+0

고마워요. 문제가 수정되었습니다. – Aleks

+1

@Aleks, 여러분 환영합니다. –

관련 문제