XSLT子节点计数

时间:2017-01-24 07:44:11

标签: xslt

我需要将GeneralErrorMessage设置为" Success"如果失败子节点数为0,则通过XSLT在以下XML中。请帮助我使用XSLT片段。

<DeleteResponse xmlns="http://schemas.xyz.com/xyzEnterprise/Services/ProjectService3/2012/08">
      <DeleteResult xmlns:a="http://schemas.xyz.com/xyzEnterprise/OpenSuite/OpenSuiteResult/2010/01/01" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <a:Failures xmlns:b="http://schemas.xyz.com/xyzEnterprise/OpenSuite/OpenSuiteStatus/2010/01/01" i:nil="true"/>
        <a:GeneralErrorMessage i:nil="true"/>
        <a:Successes xmlns:b="http://schemas.xyz.com/xyzEnterprise/OpenSuite/OpenSuiteStatus/2010/01/01">
          <b:OpenSuiteStatus xmlns:c="http://schemas.xyz.com/xyzEnterprise/OpenSuite/ProjectStatus/2012/08" i:type="c:ProjectStatus2">
            <b:Code i:nil="true"/>
            <b:ErrorMessage i:nil="true"/>
            <b:SourceIndex>0</b:SourceIndex>
            <c:Dto xmlns:d="http://schemas.xyz.com/xyzEnterprise/OpenSuite/Dtos/ProjectDto2/2012/08">
              <d:ActualFinishDate i:nil="true"/>
              <d:ActualStartDate i:nil="true"/>
              <d:CalendarKey i:nil="true"/>
              <d:Description i:nil="true"/>
              <d:Duration i:nil="true"/>
              <d:EnterProgress i:nil="true"/>
              <d:EntryDate i:nil="true"/>
              <d:FatherKey i:nil="true"/>
              <d:IsMilestone i:nil="true"/>
              <d:IsTicketable i:nil="true"/>
              <d:Key>key://2/$Plan/13795</d:Key>
              <d:LifecycleAdminUserKey i:nil="true"/>
              <d:Notes i:nil="true"/>
              <d:PercentComplete i:nil="true"/>
              <d:Place i:nil="true"/>
              <d:ScheduleFinishDate i:nil="true"/>
              <d:ScheduleStartDate i:nil="true"/>
              <d:WorkId i:nil="true"/>
              <d:WorkStatusKey i:nil="true"/>
            </c:Dto>
          </b:OpenSuiteStatus>
        </a:Successes>
        <a:Warnings xmlns:b="http://schemas.xyz.com/xyzEnterprise/OpenSuite/OpenSuiteStatus/2010/01/01" i:nil="true"/>
      </DeleteResult>
    </DeleteResponse>

1 个答案:

答案 0 :(得分:1)

编写包含标识模板规则的样式表以默认复制元素,然后添加规则

<xsl:template match="a:GeneralErrorMessage[count(//a:Failures/*)=0]">
 <xsl:copy>Success</xsl:copy>
</xsl:template>