XSLT函数
XSLT扩展函数可以在XSLT上下文中的XPath表达式中使用。它们不用于非XSLT上下文(例如,XQuery上下文)。
Altova扩展函数可以在XPath/XQuery表达式中使用。除了XPath、XQuery和XSLT标准函数库中可用的功能外,它们还提供了额外的功能。Altova扩展函数在Altova扩展函数命名空间中,http://www.altova.com/xslt-extensions,并在本部分中用altova:前缀表示,假定它与该命名空间绑定。请注意,这些函数可能在未来的产品版本中不被支持,或者个别函数的行为可能会发生变化。有关每个产品版本中对Altova扩展函数的支持的信息,请参见该版本的文档。
|
常规函数
altova:distinct-nodes(node()*) as node()* XSLT1 XSLT2 XSLT3 将一个包含一个或多个节点的集合作为其输入,并返回一个相同的,但减去了有重复值的节点的集合。要进行对比,请使用XPath/XQuery函数fn:deep-equal。
|
altova:evaluate(XPathExpression as xs:string[, ValueOf\$p1, ... ValueOf\$pN]) XSLT1 XSLT2 XSLT3 取一个XPath表达式,以字符串形式传递,作为其必需的参数。将返回已计算的表达式的输出。例如:altova:evaluate('//Name[1]')将返回文档中第一个Name元素的内容。请注意,//Name[1]表达式通过用单引号括起来作为一个字符串传递。
altova:evaluate函数可以选择性地处理额外的参数。这些参数是范围内变量的值,具有以下名称:p1, p2, p3... pN。有关用法的几点说明:(i) 变量的名称必须用以下形式定义:pX,其中X是一个整数;(ii) altova:evaluate 函数的参数(参见上方签名),从第二个参数开始,提供了变量的值,参数序列对应于按数字排列的变量序列:p1到pN:第二个参数将是p1变量的值,第三个参数是p2变量的值,以此类推;(iii) 变量的值的类型必须是item*。
altova:evaluate()扩展函数在XSLT样式表中的XPath表达式包含一个或多个必须动态计算的部分的情况下很有用。例如,假设一个用户输入了他对排序条件的请求,而该条件存储在UserReq/@sortkey特性中。在样式表中,您就可能有以下表达式:<xsl:sort select="altova:evaluate(../UserReq/@sortkey)" order="ascending"/>。altova:evaluate()函数将读取上下文节点的父节点的UserReq子元素的sortkey特性。假设sortkey 特性的值为Price,然后altova:evaluate()函数将返回Price,它将成为select特性的值:<xsl:sort select="../UserReq/@sortkey" order="ascending"/>。如果该sort指令发生在一个名为Order的元素的上下文中,则Order元素将根据其Price子元素的值进行排序。或者,如果@sortkey的值为Date,那么Order元素将根据其Date子元素的值进行排序。因此,Order的排序条件是在运行时从sortkey特性中选择的。这不可能用以下表达式来实现:<xsl:sort select="../UserReq/@sortkey" order="ascending"/>。在上方示例中,排序条件是sortkey特性本身,而不是Price或Date(或任何其他sortkey的当前内容)。
|
altova:encode-for-rtf(input as xs:string, preserveallwhitespace as xs:boolean, preservenewlines as xs:boolean) as xs:string XSLT2 XSLT3 将输入字符串转化为RTF。空白和新行将根据为其各自的参数指定的布尔值予以保留。
|
[ 回到顶部 ]
XBRL函数
Altova XBRL函数仅可以在有XBRL支持的Altova产品版本中使用。
altova:xbrl-footnotes(node()) as node()* XSLT2 XSLT3 将一个节点作为其输入参数,并返回由该输入节点引用的XBRL脚注节点集合。
|
altova:xbrl-labels(xs:QName, xs:string) as node()* XSLT2 XSLT3 取两个输入参数:一个节点名称和包含该节点的分类标准文件位置。该函数返回与该输入节点关联的XBRL标签节点。
|
[ 回到顶部 ]