这可以通过使用库的 importDocument 函数实现,并且根据您的需要,也可以使用其他库。关键是要认识到 xmlbuilder-js 和其他库中的局限性,然后制定相应的策略。例如调用 xmlbuild-js.create() 后,不能从根目录遍历文档获取现有的子元素,只能追加到末尾。了解这一点后,您可以计划如何在 JSON 中创建结构,或将 xml 从文件导入 JSON,对其进行操作,然后在 JSON 准备好时使用 xmlbuilder-js.create()。或者,您可以根据需要使用 importDocument 插入片段。另一种策略是重新设计您的 xml 文档,使它们成为片段,或者只是从中获取片段,您可以在 xml 构建器中构建根。
这是从xmlbuilder-js 文档中附加文档的示例
var peopleNode = xmlbuilder.create('roster').ele('people');
for (var i = 1; i <= 3; i++) { // Create an XML fragment person =
xmlbuilder.create('person').att('id', i); // Import the root node of
the fragment after // the people node of the main XML document
peopleNode.importDocument(person);
}
例如,您可以使用 xml2js-parser 为人员导入带有 xml 片段的文件,而不是使用 xmlbuilder-js 来创建人员,如他们的文档中的示例所示:
const fs = require('fs');
const Parser = require('xml2js-parser');
var parser = new Parser({trim: true});
fs.readFile(__dirname + '/foo.xml', (err, xml) => {
parser.parseString(xml, (err, result) => {
console.dir(result);
});
});
这就是我采取的方法,我在尝试做同样的事情时碰巧看到了你的问题。