xml - 有没有一种方法可以使用 saxon 从文本列表中调用 xQuery 函数?
问题描述
我有以下 XML
<?xml version="1.0" encoding="UTF-8"?>
<SpecializedActions>
<SpecializedAction>
<Name>ActivateAAA_Account</Name>
<Function>holaaalib:activate($csmHeader, $component, $taskName, $osmOrderId)</Function>
</SpecializedAction>
<SpecializedAction>
<Name>ActivateIMSAccount</Name>
<Function>imsLib:activate($csmHeader, $component, $taskName, $osmOrderId)</Function>
</SpecializedAction>
</SpecializedActions>
我试图像这样调用我的通用 xQuery 中的函数
if (fn:exists($specializedAList/SpecializedAction[Name/text() = $specializedActionName])) then
$specializedAList/SpecializedAction[Name/text() = $specializedActionName]/Function/text()
但这样它会返回一个文本'imsLib:activate($csmHeader, $component, $taskName, $osmOrderId)'。有没有一种方法可以将其转换为 xQuery 表达式?
解决方案
XSLT 3.0 有一条指令xsl:evaluate
,可用于评估从源文档读取的 XPath 表达式(或在运行时以其他方式变出)。XQuery 中没有标准等效项(尽管原则上您可以使用fn:transform()
它动态调用 XSLT 转换来完成它。
Saxon-PE 和更高版本有一个扩展saxon:evaluate()
,它做很多相同的事情,并且可以从 XQuery 调用。
推荐阅读
- vue.js - 使用 vue 时如何为多页应用程序设置路径?
- jquery - 如何在 jquery 中使用每个 laravel 和 ajax
- java - 如果对象具有相同的 id,则遍历列表并添加属性
- sql - 在没有联合查询和联合查询之间谁更快?
- javascript - 如何使用验证码构建无垃圾邮件引导联系表
- c# - 使用 html 敏捷包获取 img src 值
- regex - 可以在 PhpStorm 或 Notepad++ 中进行 2 路替换吗?
- css - 如何为笔记本电脑创建 CSS,最大宽度是 1024 还是 1600px?
- r - 如何在 R 中省略 ggplot (geom_line) 图的特定部分?
- javascript - Ā 如何转换为两个字符 - Ä€ - 在文本文件中打开时,在 Chrome