marklogic使用node-client-api保存xml文档?

时间:2015-04-25 06:20:16

标签: javascript xml node.js marklogic

我似乎无法使用它的node-client-api将xml文档保存到marklogic中。我使用以下代码尝试保存虚拟xml文档



var marklogic = require('marklogic');
var my = require('../db/env.js');
var db = marklogic.createDatabaseClient(my.connInfo);

console.log("Write a single dummy xml document");

db.documents.write(
{
	uri: '/collegiate/testxml.xml',
	contentType: 'application/xml',
	content: '<entry-list><entry id="horror"></entry></entry-list>'
})
&#13;
&#13;
&#13;

然后我使用以下代码来检索它:

&#13;
&#13;
var marklogic = require('marklogic');
var my = require('../db/env.js');
var db = marklogic.createDatabaseClient(my.connInfo);

console.log("Read a single xml document");

db.documents.read('/collegiate/testxml.xml')
.result().then(function(document) {
    //console.log('\nURI: ' + document.uri);
    for (var key in document) {
    	console.log("key: " + key + " value: " + document.key);
    }
}).catch(function(error) {
    console.log(error);
});
&#13;
&#13;
&#13;

我从输出中获得的是:

Read a single xml document
key: 0 value: undefined

那么如何正确保存xml文档?

1 个答案:

答案 0 :(得分:2)

问题在于读取代码。

因为客户端可以读取多个文档,所以read()请求返回一个文档数组。

所以,试试类似:

function(documents) {
  for (var i=0; i < documents.length; i++) {
    console.log(documents[i].content);
  }
}

存储库有一些示例,但重点是JSON文档:

https://github.com/marklogic/node-client-api/blob/master/examples/read-documents.js#L27

希望有帮助