-1

我正在使用 nodejs 将对象转换为 xml。我想<!-- My personal comment -->在 xml 中添加注释。我试过这段代码,但createComment总是未定义。

const xml2js = require('xml2js');
const parser = new xml2js.Parser();
const builder = new xml2js.Builder();

 const parser = new xml2js.Parser();

 parser.parseString(body, (e, myobject) => {
 myobject.test = "test";
const xml = builder.buildObject(myobject);
//NOT WORKING var c = builder.createComment("My personal comment");
//NOT WORKING var c = xml.createComment("My personal comments");
xml.appendChild(c);
4

1 回答 1

1

xml2js是用于在 JavaScript 对象和 XML 之间进行转换的工具。

它不会生成 DOM。它没有创建注释的机制(这不是 JavaScript 对象的特性)。

buildObject返回一个XML字符串。它没有appendChild方法,因为它是字符串,而不是文档。

如果您想使用 DOM 接口来操作 XML,那么您需要使用提供 DOM 接口的 XML 库来解析它。例如:libxmljs

const xml2js = require('xml2js');
const builder = new xml2js.Builder();
const libxml = require("libxmljs");
const xml = builder.buildObject({foo: 1, bar: 2});
const xmlDoc = libxml.parseXml(xml);
const foo = xmlDoc.get('//foo');
const comment = new libxml.Comment(xmlDoc, "This is a comment");
foo.addChild(comment);
console.log("" + xmlDoc);
于 2019-12-18T10:26:54.207 回答