【发布时间】:2015-05-21 14:38:59
【问题描述】:
我正在尝试使用 xml2js 构建一个 XML 节点。当我添加包含在 cdata 中的 html 标签时,它会创建一个单独的节点,如下所示。如果我将 CDATA 包装在 "" 内,则里面的值将变得未定义。基本上我正在尝试创建 XML 文档,我可以从中获取节点值并使用 jQuery/Angular 在 HTML 文档中显示它。并且这些节点必须能够包含 HTML 标签
var xml2js = require('xml2js');
var parser = new xml2js.Parser({
explicitArray: false
});
var builder = new xml2js.Builder({
cdata: true
});
var test = "<parent>![CDATA[Hey There! <span> Buddy.</span>]]</parent>"
parser.parseString(test, function(err, result) {
var xml = builder.buildObject(result)
console.log(xml)
});
//Output
/*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<parent>
![CDATA[Hey There! ]]
<span> Buddy.</span>
</parent>
*/
var test2 = "<parent><![CDATA['Hey There! <span> Buddy.</span>']]></parent>";
parser.parseString(test, function(err, result) {
var xml = builder.buildObject(result)
console.log(xml)
});
//Output :
/*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<parent><![CDATA[undefined]]></parent>
*/
【问题讨论】:
标签: javascript xml node.js