Как вернуть день, используя дату в xslt - PullRequest
0 голосов
/ 08 октября 2019

Я хочу вернуть день, используя дату в xslt.

Ввод:

<root>
  <date meetingdate="20 Jun 2019" meetingJetbetclubid="Forbury Park Harness"/>
</root>

Вывод должен быть:

<date-format>Tue:Forbury Park Harness</date-format>

Пробный код:

<xsl:template match="root/date">
  <date-format>
    <xsl:value-of select="concat(@meetingdate,':',@meetingJetbetclubid)" />
  </date-format>
</xsl:template>

Мой проверенный код не работает должным образом. Я использую XSLT 2.0

1 Ответ

0 голосов
/ 08 октября 2019

Это было бы тривиальной проблемой, если бы ваша дата была в формате ГГГГ-ММ-ДД. Тогда вам просто нужно отформатировать его как день недели.

Как таковой, вам нужно начать с преобразования указанной даты в ГГГГ-ММ-ДД:

<xsl:template match="date">
    <xsl:variable name="date-parts" select="tokenize(@meetingdate, ' ')"/>
    <xsl:variable name="m" select="index-of (('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'), $date-parts[2])"/>
    <xsl:variable name="date" select="xs:date(concat($date-parts[3], format-number($m, '-00'), format-number(number($date-parts[1]), '-00')))" />
    <date-format>
        <xsl:value-of select="format-date($date, '[FNn,*-3]:')" />
        <xsl:value-of select="@meetingJetbetclubid" />
    </date-format>
</xsl:template>

Демо : https://xsltfiddle.liberty -development.net / gWEamKY

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