跳转到内容

XForms/日期格式化

来自维基教科书,开放的书籍,开放的世界

XML 以 YYYY-MM-DD 格式存储日期,例如 2007-08-30。不幸的是,这通常不是用户希望查看日期的方式。

此示例 XForms 程序使用 CSS 隐藏输入日期,并使用 XPath 表达式获取日期以美国常用的 MM/DD/YYYY 格式显示。

屏幕图像

[编辑 | 编辑源代码]
选择日历图标之前的日期选择器。
选择日历图标之后的日期选择器。
[编辑 | 编辑源代码]

链接到日期格式外部示例

示例程序

[编辑 | 编辑源代码]
<html
  xmlns="http://www.w3.org/1999/xhtml" 
  xmlns:xf="http://www.w3.org/2002/xforms"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:ev="http://www.w3.org/2001/xml-events"
    xmlns:d="http://www.mydata.com/xmlns/data">
    <head>
        <title>Demo of date formatting using XPath concat and substring.</title>
        <style type="text/css"><![CDATA[
    @namespace xf url('http://www.w3.org/2002/xforms');
    
    .hidden .xf-value {
       display:none;
    }
]]>
      </style>
   
       <xf:model>
          <xf:instance xmlns="">
             <MyModel>
               <MyDate>2006-09-12</MyDate>
             </MyModel>
          </xf:instance>
          <xf:bind nodeset="/MyModel/MyDate" type="xs:date" />
       </xf:model>
   </head>
   <body>
        <xf:input class="hidden" ref="/MyModel/MyDate" incremental="true">
            <xf:label>Select Date: </xf:label>
        </xf:input>
        <!-- get the month (two characters wide starting at character number 6), then the day then the year -->
        <xf:output           
            value="concat(substring(/MyModel/MyDate,6,2),
            '/',
            substring(/MyModel/MyDate,9,2),
            '/',
            substring(/MyModel/MyDate,1,4))"
        />
    </body>
</html>

CSS 样式表隐藏了输入字段。输入具有 class="hidden" 属性。

输出使用以下 XPath 表达式格式化

concat(
   substring(/MyModel/MyDate,6,2),
   '/',
   substring(/MyModel/MyDate,9,2),
   '/',
   substring(/MyModel/MyDate,1,4)
)

Concat 是 XPath 连接运算符。输入格式为:"YYYY-MM-DD"。我们只需要找到并获取正确的字符。

  1. 第一个子字符串到第 6 个字符,并提取两个月份 (MM) 字符。
  2. 第二个子字符串从第 9 个字符开始,获取两个日期 (DD) 字符。
  3. 最后一个子字符串返回第 1-4 个字符,它们是四个年份字符 (YYYY)。

您不必显示年份中的所有四个字母。通过将最后一个子字符串从

substring(/MyModel/MyDate,1,4)

更改为

substring(/MyModel/MyDate,3,4)

您将只获得年份的后两位数字。


下一页: 上传 | 上一页: 选择日期
主页: XForms
华夏公益教科书