如何在Marklogic中使用转换插入XML标记?

时间:2015-03-30 09:58:23

标签: javascript xml json transformation marklogic

我有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)。

2 个答案:

答案 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结构:

http://docs.marklogic.com/guide/jsref/api#id_90865