我正在使用“ xml-builder”节点模块创建一个xml文件。但是,当我尝试编写尖括号(“ <”或““>”)时,出现了诸如“ <”和“>”之类的字符。代码如下:
let builder = require('xmlbuilder', { encoding: 'utf-8' });
let name = "ABC";
let xml = builder.create('Slides');
xml.ele('props',"Hello").up();
xml.ele('name',"<Hello> "+name+" </Hello>").up();
xml.end({ pretty: true });
console.log(xml.toString())
输出如下:
<Slides>
<props>Hello</props>
<name><Hello> ABC </Hello></name>
</Slides>
我该怎么做才能打印<
或>
而不是<
或>
?
答案 0 :(得分:0)
有一个npm模块decode-html可以处理与您相同的用例。
var decode = require('decode-html');
console.log(decode('<div class="hidden">NON&SENSE's</div>'));
// -> '<div class="hidden">NON&SENSE\'s</div>'
答案 1 :(得分:0)
问题在于,您试图通过以错误的方式创建子元素,方法是在mux
的{{1}}字段中传递一些xml。模块正确地逃脱了尖括号。
您需要做的是创建另一个名为value
的元素,并将其附加到xml.ele
元素中。您可以通过链接Hello
调用或使用其返回值来实现。
这是正确的代码:
name
输出:
.ele