XSLT中的Break语句

时间:2018-01-29 20:21:22

标签: xslt

我在XSLT中寻找一种中断语句。

以下是我的意见:

     <ListOfCrnEstimates>
               <CrnEstimates>
                <CRNEstimatePackage>Mobile Claims</CRNEstimatePackage>
                <CRNEstimateAssignStatus>Pending</CRNEstimateAssignStatus>
                          </CrnEstimates>
                          <CrnEstimates>
                             <CRNEstimatePackage>Adjuster</CRNEstimatePackage>                  
                             <CRNEstimateAssignStatus>Pending1</CRNEstimateAssignStatus>
                          </CrnEstimates>
                         <CrnEstimates>
                             <CRNEstimatePackage>Inside Adjuster</CRNEstimatePackage>                   
                             <CRNEstimateAssignStatus>Moved to Mobile Claims</CRNEstimateAssignStatus>
                          </CrnEstimates>
                          <CrnEstimates>
                        <CRNEstimatePackage>Mobile Claims</CRNEstimatePackage> 
<CRNEstimateAssignStatus>Completed</CRNEstimateAssignStatus>                                    <CRNEstimateAssignStatus>Completed</CRNEstimateAssignStatus>
                          </CrnEstimates>               
        </ListOfCrnEstimates>

注意:CRNEstimateAssignStatus值可能不同......

我必须检查CRNEstimatePackage = Mobile Claims并且必须创建后端请求,并保留该特定<CrnEstimates>并删除其他<CrnEstimates>

对于上述请求,我应该生成2个后端请求,如下所示:

输出1:

 <ListOfCrnEstimates>
                  <CrnEstimates>
                     <CRNEstimatePackage>Mobile Claims</CRNEstimatePackage>                    
                     <CRNEstimateAssignStatus>Pending</CRNEstimateAssignStatus>
                  </CrnEstimates>                
    </ListOfCrnEstimates>

输出2:

<ListOfCrnEstimates>
                  <CrnEstimates>
                     <CRNEstimatePackage>Mobile Claims</CRNEstimatePackage>                    
                    <CRNEstimateAssignStatus>Completed</CRNEstimateAssignStatus>
                  </CrnEstimates>                
         </ListOfCrnEstimates>

目前我在xslt以下使用

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" 
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<xsl:output method="xml" encoding="UTF-8" indent="yes" /> 
    <xsl:strip-space elements="*" /> 
<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>
        <xsl:template match="*:CrnEstimates[descendant::*:CRNEstimatePackage[. != 'Mobile Claims']]"/>      
</xsl:stylesheet> 

我得到的回应低于:

<?xml version="1.0" encoding="UTF-8"?>
<ListOfCrnEstimates>
   <CrnEstimates>
      <CRNEstimatePackage>Mobile Claims</CRNEstimatePackage>
      <CRNEstimateAssignStatus>Pending</CRNEstimateAssignStatus>
   </CrnEstimates>
   <CrnEstimates>
      <CRNEstimatePackage>Mobile Claims</CRNEstimatePackage>
      <CRNEstimateAssignStatus>Completed</CRNEstimateAssignStatus>
   </CrnEstimates>
</ListOfCrnEstimates>

1 个答案:

答案 0 :(得分:0)

正如我认为你想CRNEstimatePackage[. != 'Mobile Claims']什么时候放弃所有CrnEstimates后代// CRNEstimatePackage值不是&#39;移动声明&#39;。