date - 如何将文本转换为日期,然后获取年份值?

标签 date xslt xslt-2.0 saxon

需要将文本值‘2012-03-19’转换为日期类型,然后提取年份组件。

<xsl:variable name="dateValue" select="2012-03-19"/>
<xsl:variable name="year" select="year-from-date(date($dateValue))"/>

我正在使用 Saxon 2.0,但它在提示 date函数不存在;我查看了 Saxon 的文档并找不到该功能,所以这显然是问题所在,但我找不到合适的替代品。

最佳答案

我不认为 date()应该是一个函数,你想要 xs:date()数据类型。

添加 xs命名空间,然后前缀 xs:date() .

以下样式表,使用任何格式良好的 XML 输入,将产生 2012 :

<xsl:stylesheet version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <xsl:variable name="dateValue" select="'2012-03-19'"/>
    <xsl:variable name="year" select="year-from-date(xs:date($dateValue))"/>
    <xsl:value-of select="$year"/>
  </xsl:template>

</xsl:stylesheet>

请注意,您还必须引用您的 select在您的“日期值”xsl:variable .

关于date - 如何将文本转换为日期,然后获取年份值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9744587/

相关文章:

javascript - Bootstrap 日期选择器在手动输入期间不验证格式

javascript - JavaScript中有效的日期时间字符串是什么?

css - 在 XSL-FO 中使用外部 CSS

xml - 如何检查 XML 节点是否包含文本

html - 如何将所有 "LF"字符转换为 "<br/>"标签并显示在HTML页面上

ios - 如何在 Swift3 ios 中获取上周的天数

php - 如何在PHP中获取输出日期格式为2016-05-03T01 :38:54. 003Z?

用于元素集合的 XSLT for-each 循环

xml - 如何使用 xsl-fo 防止文本越过前后区域?

xslt - XSLT 中的上个月最后一天