Как преобразовать этот формат мм / дд / гг в гггг-мм-дд и добавить чч: мм: сс в xslt - PullRequest
0 голосов
/ 11 декабря 2018

Интересно, кто-нибудь может помочь?Я изо всех сил пытаюсь преобразовать дату ниже.Есть ли способ преобразовать дату из мм / дд / гг в гггг-мм-дд и добавить чч: мм: сс в xslt?

вот мой текущий входной XML.Я пытаюсь конвертировать "DateofService".Дата обслуживания всегда будет мм / дд / гг без чч: мм: сс.

                              <?xml version="1.0"?>
                             -<BCBSFMsg>
                               <BCBSFMsgHeader/>
                              -<BCBSFBody>
                               -<EIPMsg ImageType="PAPER"  MsgType="DocumentNotify">
                                       <ImageId>12344</ImageId>
                                       <FileExtension>TIF</FileExtension>
                                     <DateofService>11/27/18</DateofService>
                                                 <EIPMsg>
                                           </BCBSFMsg>

В настоящее время вот мой запрос в xslt:

<xsl:variable name="Date">
        <xsl:variable name="sqlXref"> 
          SELECT CONVERT(CHAR(19),ai.ADDLINFO_INDEX_15, 101) + '00:00:00' AS 'ServiceFromDate' FROM   ADDITIONAL_INFORMATION ai with (nolock)  INNER JOIN IMAGES_DETAIL id with (nolock) WHERE id.IMAGE_ID = &apos;<xsl:value-of select="$IMAGE_ID"/>&apos;
         </xsl:variable>
        <xsl:value-of select="env:ExecuteScalar($provider, $connStr, $sqlXref)"/>
  </xsl:variable>

Я передаюпеременная $Date в элементе

<xsl:element name ="DateofService">
<xsl:value-of select="$Date"/>
</xsl:element>  

Пожалуйста, сообщите.

Спасибо.

1 Ответ

0 голосов
/ 12 декабря 2018

Если у вас есть входной XML, который содержит:

<DateofService>11/27/18</DateofService>

, то шаблон:

<xsl:template match="DateofService">
    <xsl:copy>
        <xsl:text>20</xsl:text>
        <xsl:value-of select="substring-after(substring-after(., '/'), '/')"/>
        <xsl:value-of select="format-number(substring-before(., '/'), '-00')"/>
        <xsl:value-of select="format-number(substring-before(substring-after(., '/'), '/'), '-00')"/>
        <xsl:text> 00:00:00</xsl:text>
    </xsl:copy>
</xsl:template>

вернет:

<DateofService>2018-11-27 00:00:00</DateofService>

Примечаниечто это предполагает, что все ваши даты в 21-м веке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...