XForms 函数

2024 年 8 月 28 日 | 阅读 2 分钟

XForms 包含一些预定义的函数。您也可以调用脚本中定义的函数。 XForms 函数库包括整个 XPath 1.0 核心函数库。

让我们看看 XForms 中包含的附加函数

索引函数描述
1)boolean-from-string(string)如果参数字符串为“True”或“1”,则返回 TRUE;如果参数字符串为“False”或“0”,则返回 FALSE
2)if(booleantest, string1, string2)它计算布尔测试参数,如果测试为真,则返回 string1,如果测试为假,则返回 string2
3)avg(node-set)
它返回指定节点集中所有节点的平均值。每个节点的值都转换为一个数字。如果节点集为空,则返回 nan<div><values>
<value>10</value>
<value>50</value>
<value>0</value>
</values>

avg(/values/value)

返回:20
4)min(node-set)它用于指定节点集中所有节点的最小值。每个节点的值都转换为一个数字。如果节点集为空,则返回 nan<div><values>
<value>10</value>
<value>20</value>
<value>0</value>
</values>

min(/values/value)

返回:0
5)max(node-set)它返回指定节点集中所有节点的最大值。每个节点的值都转换为一个数字。如果节点集为空,则返回 nan<div><values>
<value>10</value>
<value>20</value>
<value>0</value>
</values>

max(/values/value)

返回:20
6)count-non-empty(node-set)它返回指定节点集中非空节点的数量
<values>
<value>10</value>
<value>20</value><div><value>0</value>
<value />
</values>

count-non-empty(/values/value)

返回:3
7)index(string)它返回给定重复集的当前索引
8)property(string)它返回由字符串参数命名的属性
property("version") - 返回 xforms 版本号<div>property("conformance-level") - 返回 xforms 一致性级别("basic" 或 "full")
9)now()它以 xs:datetime 格式返回当前系统日期和时间
10)instance(string)一个 xforms 模型可以包含多个实例。此函数返回指定实例数据的根节点<div><xforms:instance id="orderform">
<firstname>john</firstname>
</xforms:instance>

ref="instance('orderform')/firstname"

此示例返回一个节点集,该节点集由名为“orderform”的实例中的 firstname 元素节点组成
11)days-from-date(string)如果字符串参数表示合法的 xs:date 或 xs:datetime,则它返回指定日期和 1970-01-01 之间的天数,否则它返回 nan
days-from-date("2002-01-02") 返回 11689
days-from-date("1969-12-29") 返回 -3
12)seconds-from-datetime(string)如果字符串参数表示合法的 xs:datetime,则它返回指定日期时间与 1970-01-01t00:00:00z 之间的秒数,否则它返回 nan
13)seconds(string)
如果字符串参数表示合法的 xs:duration,则它返回秒分量中指定的数字加上 60 * 分钟分量中指定的数字,加上 60 * 60 * 小时分量中指定的数字,加上 60 * 60 * 24 * 天分量中指定的数字,否则它返回 nan
seconds("p1y2m") 返回 0
seconds("p3dt10h30m1.5s") 返回 297001.5seconds("3") 返回 nan
14)months(string)如果字符串参数表示合法的 xs:duration,则它返回月份分量中指定的数字加上 12 * 年份分量中指定的数字,否则它返回 nan
months("p1y2m") 返回 14
months("-p19m") 返回 -19
下一个主题XForms 面试问题