如何在 Node.js 中静音 XML DOM 的所有警告消息

How to silent all the warning messages of XML DOM in Node.js

我使用的是节点模块 xmldom。但是,它总是打印出大量警告和错误,如下所示:

@#[line:484,col:1]
[xmldom warning]        attribute "hidden" missed quot(")!!
@#[line:517,col:1]
[xmldom warning]        unclosed xml attribute
@#[line:517,col:1]
[xmldom warning]        unclosed xml attribute
@#[line:518,col:1]
[xmldom warning]        attribute "center" missed quot(")!!
@#[line:522,col:1]
[xmldom warning]        attribute "6" missed quot(")!!

我想知道如何在不接触节点或 package.json 自身的情况下显式 静音 所有这些警告和错误?

我幸运地找到了参考这个 的答案。我的解决方法是替换原来的 dom 实例化:

var doc = new dom().parseFromString(body);

与以下 options:

var doc = new dom({
    locator: {},
    errorHandler: { warning: function (w) { }, 
    error: function (e) { }, 
    fatalError: function (e) { console.error(e) } }
}).parseFromString(body);

我们必须明白,隐藏警告和错误并不能解决问题。因此,我建议只有在输入的正确性对后面的逻辑没有影响,或者警告消息压倒其他控制台消息时才使用这种技术。

希望对社区有所帮助。