我有xml文档,需要使用marklogic中的转换为现有的xml添加额外的标记。这不能使用任何xquery。
所有编码必须使用javascript。
以下是向JSON添加新标记的代码:
function insertTimestamp(context, params, content)
{
workaround(context);
if (context.inputType.search('json') >= 0) {
var result = content.toObject();
if (context.acceptTypes) { /* read */
result.readTimestamp = fn.currentDateTime();
} else { /* write */
result.writeTimestamp = fn.currentDateTime();
}
return result;
} else {
/* Pass thru for non-JSON documents */
return content;
}
};
exports.transform = insertTimestamp;
以同样的方式,我需要为XML添加一个标记(而不是JSON)。
答案 0 :(得分:2)
即使您使用的是使用XQuery编写的库模块,也可以使用服务器端JavaScript。例如,您可以使用Ryan Dew's XQuery XML Memory Operations library。
var mem = require('/lib/memory-operations.xqy');
mem.insertChild(...);
请注意,您从XQuery导入的蠕虫病毒名称将作为JavaScript中的camel-case名称进行访问。
答案 1 :(得分:0)
与XQuery一样,节点在服务器端JavaScript中是不可变的。
要修改XML结构,策略是通过复制要保留的节点,省略要删除的节点以及创建要插入的新节点来创建新结构。
在服务器端JavaScript中,您可以使用构建器API来创建新的XML结构: