使用XSLT基于属性值删除XML节点

时间:2016-03-04 01:37:47

标签: xml xslt

我的目标是在StatusDate为1900-01-01T00:00:00时使用此XSLT样式表删除整个LoanSecondaryStatus节点,但在其他任何日期保留节点。

我有以下XML:

<Loans>
   <Loan>
       <LoanSecondaryStatus>
          <StatusName>Application Started</StatusName>
          <StatusDate>1900-01-01T00:00:00</StatusDate>
      </LoanSecondaryStatus>
      <LoanSecondaryStatus>
          <StatusName>Application Finished</StatusName>
          <StatusDate>2016-03-02T00:00:00</StatusDate>
      </LoanSecondaryStatus>
  </Loan>
</Loans>

以下是我尝试删除LoanSecondaryStatus节点的XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output indent="yes" />

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

  <xsl:template match="/LoanSecondaryStatus[not(StatusDate='1900-01-01T00:00:00')]"/>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:1)

  

在StatusDate为时删除整个LoanSecondaryStatus节点   1900-01-01T00:00:00

我相信你的第二个模板必须是:

<xsl:template match="LoanSecondaryStatus[StatusDate='1900-01-01T00:00:00']"/>