0

我得到了一个 XML 文件,其中填充了包括“start_time”事件在内的元素,该事件不会在时间结构中添加前导零。

例如
“12:00”=OK
“21:00”=OK
“9:00”=不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>
4

2 回答 2

0

您可以使用将其转换为数字number(translate($in, ':', '.')),然后将其format-number($n, '00:00')与使用“:”作为小数分隔符的十进制格式结合使用。

于 2013-09-26T08:19:53.503 回答
0

最简单的答案是添加

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

在适当的地方。

于 2013-09-25T22:39:59.330 回答