1.0

2013-12-16 3 views
0

나는이1.0

<component name="main"> 
    <component name="sub"> 
     <component name="a"> 
      <issues> 
       <warning> </warning> 
      </issues> 
     </component> 
     <component name="b"> 
      <issues> 
       <warning> </warning> 
      </issues> 
     </component> 
     <component name="c"> 
      <issues> 
       <error> </error> 
      </issues> 
     </component> 
    </component> 
</component> 

내가 출력과 같이 할 같은 XML 보이는이 아래

"main": [ 
    { 
     composite:"sub" 
     result: "failure" 
    } 
] 

결과는 3 개의 값을 가질 수 있습니다. 오류 없음 경고 실패 : 성공 아래에 나열되어 있지 않은 0보다 오류 불안정 : 제로 오류가 0보다 경고

이 결과는 위의 예에서 하위 구성 요소 result.The에 근거해야한다 "하위는"있는 하위 구성 요소 c 중 하나에 오류 태그가 있기 때문에 결과가 실패합니다.

내 코드는 다음과 같습니다. 그게 내게 원하는 결과를주지 못한다. 밖으로

<xsl:param name="error">0</xsl:param> 
<xsl:param name="warning">0</xsl:param> 
<xsl:param name="Success">0</xsl:param> 
<xsl:for-each select="./components/components">  
<xsl:if test="./issues/error">   
<xsl:param name="error" select="'1'" />  
</xsl:if> 
<xsl:if test= "./issues/warning"> 
<xsl:param name="warning" select="'1'" />  
</xsl:if> 
<xsl:if test= "not(./issues/warning) and not(./issues/error)"> 
<xsl:param name="Success" select="'1'" />  
</xsl:if> 
</xsl:for-each> 
<xsl:if test= "$error = '1'"> 
"result":"Failure" 
</xsl:if> 
<xsl:if test="$error !='1' and $warning = '1'"> 
"result":"Unstable" 
</xsl:if> 
<xsl:if test="$error !='1' and $warning != '1' and $warning = '1'"> 
"result":"Success" 
</xsl:if> 

답변

0

변수의 필요를 도와주세요 :

<xsl:for-each select="./components"> 
    <xsl:text>"result":</xsl:text> 
    <xsl:choose> 
    <xsl:when test="count(./components/issues/error) &gt; 1"> 
     <xsl:text>"Failure"</xsl:text> 
    </xsl:when> 
    <xsl:when test="count(./components/issues/warning) &gt; 1"> 
     <xsl:text>"Unstable"</xsl:text> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:text>"Success"</xsl:text> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:for-each> 
+0

그게 전부를! :) 고맙습니다 :) – user2179627