2013-09-25 38 views
0

我收到了一個XML文件,其中包含一個「start_time」事件,它不會將時間結構的前導零添加到元素中。如何使用XSL更改時間值以包含前導零?

E.g.
「12:00」= OK
「21:00」= OK
「9:00」= NOT OK

我需要的XML 「START_TIME」 是一致的,這樣我可以執行排序在這些屬性上。即我需要時間長度總是4位數(如果您計算結腸分隔符,則需要5位數)。例如。 「09:00」添加了前導零。

有人可以建議我該如何解決這個問題嗎?我對XSL完全陌生,至今沒有提出任何建議。

的XML如下所示:

<ArrayOfEvent> 
<Event> 
    <category_name>Academic</category_name> 
    <event_title>Test (Paper one)</event_title> 
    <allday>false</allday> 
    <start_time>12:52</start_time> 
    <start_date>04/10/2012</start_date> 
    <end_time>9:00</end_time> 
    <end_date>04/10/2012</end_date> 
</Event> 

<Event> 
    <category_name>Academic</category_name> 
    <event_title>Test (Paper two)</event_title> 
    <allday>false</allday> 
    <start_time>2:00</start_time> 
    <start_date>10/10/2012</start_date> 
    <end_time>9:00</end_time> 
    <end_date>10/10/2012</end_date> 
</Event> 

<Event> 
    <category_name>Academic</category_name> 
    <event_title>Prize Giving</event_title> 
    <allday>false</allday> 
    <start_time>22:31</start_time> 
    <start_date>23/09/2013</start_date> 
    <end_time>9:00</end_time> 
    <end_date>23/09/2013</end_date> 
</Event> 
</ArrayOfEvent> 
+0

您有任何XSLT代碼供我們使用嗎?你有什麼嘗試?什麼都沒有奏效?它怎麼沒有奏效? – 2013-09-26 01:55:49

+0

XSLT 1.0或2.0? –

回答

0

最簡單的答案是,在適當的地方加上

<xsl:if test="string-length(end_time) &lt; 5">0</xsl:if> 

0

您可以使用number(translate($in, ':', '.'))將其轉換爲數字,然後將format-number($n, '00:00')與使用「:」作爲小數分隔符的十進制格式結合使用。