datetime
  • xslt
  • date
  • time
  • 2011-03-11 39 views 4 likes 
    4

    在XSLT中,我想將XML文檔轉換爲另一個。舊文件有一些日期和時間不太好用。例如:在XSLT中添加日期時間

    <foo date="20110310" time="002000" duration="001500"/> 
    

    現在我提取的所有相關信息,並能夠將這些轉換爲ISO 8601個日期:

    <xsl:variable name="begin" select='concat($begin_date_year, "-", $begin_date_month, "-", $begin_date_day, "T", $begin_time_hour, ":", $begin_time_minutes, ":", $begin_time_seconds)'/> 
    --> $begin = 2011-03-10T00:20:00 
    

    而對於持續時間:

    <xsl:variable name="duration" select='concat("PT", $dur_hour, ":", $dur_minutes, ":", $dur_seconds)'/> 
    --> $duration = PT00:15:00 
    

    我怎樣才能將持續時間添加到DateTime以便找出結尾(以DateTime格式)?

    我已經想到了將各個組件,但如果我說15分鐘到23:50,這將涉及與模擺弄周圍,例如很多,然後不得不調整相應的一天,等

    回答

    6

    好的,現在我的found a function沒有列在我之前使用的函數引用中。

    add-dayTimeDuration-to-dateTime(xs:dateTime, xs:dayTimeDuration) 
    

    這也可以寫,例如,如:

    xs:dateTime($begin) + xs:dayTimeDuration($duration) 
    
    +0

    這是一個類似的問題XPath 2.0和formaly它是一個運算符,在'xs:dateTime'和'xs:dayTimeDuration'上__'運算符'__ – 2011-03-11 15:33:27

    +0

    哦,我沒有不要期望這麼容易工作。 – slhck

    0

    只是爲了保持完整性,也就是在http://www.exslt.org/date/functions/add/date.add.html

    的implementaton看到xslt - subtracting days

    相關問題