2012-03-16 3 views
7

テキスト値「2012-03-19」を日付タイプに変換し、年のコンポーネントを抽出する必要があります。テキストを日付に変換し、年の値を取得するにはどうすればいいですか?

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

私はサクソン2.0を使用していますが、それは存在しませんdate機能を訴えています。私はSaxonのドキュメンテーションの周りを見て、関数を見つけることができなかったので、それは明らかに問題ですが、私は適切な置換えを見つけることができません。

答えて

8

私はdate()が関数であるとは思わない、xs:date()データ型が必要です。

xs名前空間を追加し、接頭辞xs:date()を追加します。

次のスタイルシートは、任意の整形式XML入力を使用して、2012を生成します。また、あなたの「DATEVALUE」xsl:variableであなたのselectを引用する必要が

<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> 

注意。

+0

ありがとう、私はそれを逃した... – raffian

関連する問題