使用xml-builder节点模块打印尖括号中的问题

时间:2018-11-09 04:11:53

标签: javascript node.js npm xml-builder

我正在使用“ 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>&lt;Hello&gt; ABC &lt;/Hello&gt;</name>
</Slides>

我该怎么做才能打印<>而不是&lt;&gt;

2 个答案:

答案 0 :(得分:0)

有一个npm模块decode-html可以处理与您相同的用例。

var decode = require('decode-html');

console.log(decode('&lt;div class="hidden"&gt;NON&amp;SENSE&apos;s&lt;/div&gt;'));
// -> '<div class="hidden">NON&SENSE\'s</div>'

答案 1 :(得分:0)

问题在于,您试图通过以错误的方式创建子元素,方法是在mux的{​​{1}}字段中传递一些xml。模块正确地逃脱了尖括号。

您需要做的是创建另一个名为value的元素,并将其附加到xml.ele元素中。您可以通过链接Hello调用或使用其返回值来实现。

这是正确的代码:

name

输出:

.ele