如何使用xslt检查和替换空日期

如何使用xslt检查和替换空日期,xslt,Xslt,我想检查我的到期日是否为空,而不是从CreationDate获取值 我的XML就像 <CreationDate>2017-03-18</CreationDate> <ExpiresDate>20170318</ExpiresDate> 2017-03-18 20170318 在我的xsl中 <xsl:element name="NewDeliveryDueDate"> <xsl:call-template n

我想检查我的到期日是否为空,而不是从CreationDate获取值

我的XML就像

 <CreationDate>2017-03-18</CreationDate>         <ExpiresDate>20170318</ExpiresDate>
2017-03-18 20170318
在我的xsl中

<xsl:element name="NewDeliveryDueDate">
<xsl:call-template name="FormatDate">
<xsl:with-param name="DateTime" select="Product/ExpiresDate"/> 
</xsl:call-template>
</xsl:element>
&comma;

&逗号;

请建议

你的问题不完整。也许这对你有用:

XSLT1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

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

<xsl:template match="ExpiresDate[not(string())]">
    <xsl:copy>
        <xsl:value-of select="translate(../CreationDate, '-', '')"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>

将此应用于以下示例输入时:

<root>
    <item>
        <CreationDate>2017-03-18</CreationDate>
        <ExpiresDate>20170318</ExpiresDate>
    </item>
    <item>
        <CreationDate>2017-03-09</CreationDate>
        <ExpiresDate/>
    </item>
</root>

2017-03-18
20170318
2017-03-09
结果将是:

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <item>
      <CreationDate>2017-03-18</CreationDate>
      <ExpiresDate>20170318</ExpiresDate>
   </item>
   <item>
      <CreationDate>2017-03-09</CreationDate>
      <ExpiresDate>20170309</ExpiresDate>
   </item>
</root>

2017-03-18
20170318
2017-03-09
20170309
您应该发布输入XML的完整示例,包括“null”到期日期。我也看不出XSLT与所述问题有什么关系。