2014-07-07 1 views
0

새 문제는 태그의 if 문입니다.이 새로운 문제가 있습니다. 미디어가 중첩 된 "if"요소를 호출합니까?xmltask - 호출이 중첩 된 "if"요소를 지원하지 않습니다.

rapport.xml :

<testsuites name="COMPTES" tests="6" time="7" timestamp="2014-07-01T17-20-07" failures="6" errors="0"> 
    <testsuite name="100" tests="6" failures="6" errors="0" time="7"> 
     <testcase classname="Script.COMPTES.100" name="TEST1" time="1"> 
      <failure message="Not exist file or counter or used" type="fichiersInexistants"> 
       File No matches 
      </failure> 
     </testcase> 
     <testcase classname="Script.COMPTES.100" name="TEST2" time="2"> 
      <failure message="Not exist file or counter or used" type="fichiersUtilises"> 
       Data set in use 
      </failure> 
     </testcase> 
     <testcase classname="Script.COMPTES.100" name="TEST3" time="3"> 
      <failure message="Not exist file or counter or used" type="fichiersInexistants"> 
       File No matches 
      </failure> 
     </testcase> 
     <testcase classname="Script.COMPTES.100" name="TEST4" time="3"> 
      <failure message="File abended" type="abended"> 
       File abended 
      </failure> 
     </testcase> 
    </testsuite> 
</testsuites> 

코드 소스 :이 오류가 발생하는 이유

<xmltask source="rapport.xml">          
    <call path="//testsuites"> 
     <param name="comptes" path="@name"/>       
     <param name="testsuite1" path="testsuite[1]/@name"/> 
     <param name="compteur1" path="testsuite[1]/testcase/text()"/> 
     <param name="compteurFailure1" path="testsuite[1]/testcase/failure/text()"/> 
     <if> 
      <or> 
       <equals arg1="@{comptes}" arg2="COMPTES"/> 
       <equals arg1="@{comptes}" arg2="EXE"/> 
       <equals arg1="@{comptes}" arg2="RESTORE"/> 
      </or>  
      <then> 
       <param name="testsuite2" path="testsuite[2]/@name"/>  
       <param name="compteur2" path="testsuite[2]/testcase/text()"/> 
       <param name="compteurFailure2" path="testsuite[2]/testcase/failure/text()"/>         
      </then>       
     </if> 
     <actions>       
      <if> 
       <or> 
        <equals arg1="@{comptes}" arg2="COMPTES"/> 
        <equals arg1="@{comptes}" arg2="EXE"/> 
        <equals arg1="@{comptes}" arg2="RESTORE"/> 
       </or>  
       <then> 
        <echo message="compteur"/> 
        <echo> @{compteur1} </echo>  
        <echo> @{compteurFailure1} </echo> 
        <echo> @{compteur2} </echo>  
        <echo> @{compteurFailure2} </echo>          
       </then> 
       <else> 
        <echo message="compteur"/> 
        <echo> @{compteur1} </echo>  
        <echo> @{compteurFailure1} </echo>      
       </else> 
      </if> 
     </actions> 
    </call>        
</xmltask> 

내가 이해하지 못하는 동안 "@ {comptes}"= "COMPTES"?

답변

0
<xmltask source="rapport.xml">          
    <call path="//testsuites"> 
     <param name="comptes" path="@name"/>       
     <param name="testsuite1" path="testsuite[1]/@name"/> 
     <param name="compteur1" path="testsuite[1]/testcase/text()"/> 
     <param name="compteurFailure1" path="testsuite[1]/testcase/failure/text()"/>   
     <actions>      
      <var name="comptes" value="@{comptes}"/>               
     </actions> 
    </call>        
</xmltask> 

<if> 
    <or> 
     <equals arg1="${comptes}" arg2="COMPTES"/> 
     <equals arg1="${comptes}" arg2="EXE"/> 
     <equals arg1="${comptes}" arg2="RESTORE"/> 
    </or>  
    <then> 
     <xmltask source="rapport.xml">          
      <call path="//testsuites">         
       <param name="testsuite1" path="testsuite[1]/@name"/> 
       <param name="compteur1" path="testsuite[1]/testcase/text()"/> 
       <param name="compteurFailure1" path="testsuite[1]/testcase/failure/text()"/> 
       <param name="testsuite2" path="testsuite[2]/@name"/>  
       <param name="compteur2" path="testsuite[2]/testcase/text()"/> 
       <param name="compteurFailure2" path="testsuite[2]/testcase/failure/text()"/>  
       <actions> 
        <if> 
         <or> 
         <not><equals arg1="@{testsuite1}" arg2="" /></not> 
         <not><equals arg1="@{testsuite2}" arg2="" /></not> 
         </or> 
         <then>          
          <echo message="@{compteur1}"/> 
          <echo message="@{compteurFailure1}"/> 
          <echo message="@{compteur2}"/> 
          <echo message="@{compteurFailure2}"/> 
         </then> 
        </if>                  
       </actions> 
      </call>        
     </xmltask>   
    </then> 
    <else> 
     <xmltask source="rapport.xml">          
      <call path="//testsuites">         
       <param name="testsuite1" path="testsuite[1]/@name"/> 
       <param name="compteur1" path="testsuite[1]/testcase/text()"/> 
       <param name="compteurFailure1" path="testsuite[1]/testcase/failure/text()"/>   
       <actions> 
        <if> 
         <not><equals arg1="@{testsuite1}" arg2="" /></not> 
         <then>          
          <echo message="@{compteur1}"/> 
          <echo message="@{compteurFailure1}"/> 
         </then> 
        </if>                  
       </actions> 
      </call>        
     </xmltask> 
    </else> 
</if>