2012-03-16 26 views
7

Cần chuyển đổi giá trị văn bản `2012-03-19 'thành loại ngày, sau đó trích xuất thành phần năm.Cách chuyển đổi văn bản thành ngày, sau đó nhận giá trị năm?

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

Tôi đang sử dụng Saxon 2.0, nhưng chức năng này phàn nàn date không tồn tại; Tôi nhìn quanh tài liệu của Saxon và không thể tìm thấy chức năng, vì vậy đó rõ ràng là vấn đề, nhưng tôi không thể tìm thấy một sự thay thế phù hợp.

Trả lời

8

Tôi không nghĩ rằng date() phải là một hàm, bạn muốn loại dữ liệu xs:date().

Thêm không gian tên xs và sau đó tiền tố xs:date().

Các kiểu sau đây, sử dụng bất kỳ đầu vào XML cũng như hình thành, sẽ tạo ra 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> 

Lưu ý rằng bạn cũng phải trích dẫn select của bạn trong "DATEVALUE" xsl:variable.

+0

Cảm ơn, tôi đã bỏ lỡ điều đó ... – raffian

Các vấn đề liên quan