2
A
回答
6
如果我们有一个xsl:key
指令:
<xsl:key name='someName' match="patExpr" use="Expr"/>
并向key()
功能一个电话:
key('someName', someExpr, $someDocNode)
这相当于:
($someDocNode//patExpr)[Expr = someExpr]
因此,对于任何特定的键,你需要声明一个函数(命名为my:keySomeName()
)返回节点序列,其身体上的表达。
例:
如果我们有这样的xsl:key
指令:
<xsl:key name='kNameByVal' match='Name' use='.'/>
这调用key()
功能:
key('kNameByVal', 'Peter', $doc)
那么相应的XQuery函数将有本机构:
$doc//Name[. = 'Peter']
万一key()
函数的第二操作数是一个更复杂的表达式,计算该表达式必须作为第二个参数将密钥传递函数-implementing函数(因此,这是唯一可能的XQuery中3.0及以上)和我们最终是这样的:
declare function my:keyNameByVal($funExpr as function($context as node()) as item()*,
$currenDoc as document-node()
) as node()*
{
$currenDoc//Name[. = $funExpr(.) ]
}
的更传统的非3.0方式是呼叫者计算表达式,并传递这个结果计算作为第一个参数my:keyNameByVal()
功能:
declare function my:keyNameByVal($useExpr as item()*,
$currenDoc as document-node()
) as node()*
{
$currenDoc//Name[. = $useExpr]
}
}
相关问题
- 1. 用于转换数据的XQuery vs XSLT
- 2. 的XQuery月功能
- 3. XSLT与XQuery的
- 4. Xquery所有功能
- 5. xquery在另一个函数中调用维护功能
- 6. 使用XSLT的问题键()函数
- 7. Sitemesh类似于XSLT的功能吗?
- 8. 使用XSLT中的功能
- 9. 如何调用使用存在-DB和XQuery函数功能使用XPath
- 10. C#中用于SQLCE外键的功能
- 11. 使用XSLT小写功能
- 12. Zorba(XQuery) - 使用打印功能
- 13. 多收集功能使用XQuery
- 14. onclick error调用Xquery函数
- 15. XSLT - 激活的xpath功能在XSLT
- 16. XSLT包含功能
- 17. 使提供可用于第二功能一个功能定义的数组键
- 18. Xquery顶部函数
- 19. XQuery递归函数
- 20. xslt中的计数器变量功能
- 21. 将参数从xquery传递到xslt
- 22. 关于PHP str_replace函数功能
- 23. xslt中的文档功能
- 24. 的Xquery字符串连接功能
- 25. 如何在xslt中使用按键功能v2.0.0
- 26. XQuery中的tail()函数
- 27. XQuery中的“Canonical Path”函数?
- 28. XQuery中的min()函数
- 29. 从XSLT运行XQuery转换
- 30. 使用功能处于休眠聚集函数的参数
感谢它做的魔力 – user1890342