gpt4 book ai didi

javascript - 如何在xml2js xml的CDATA中添加html标签?

转载 作者:行者123 更新时间:2023-12-03 10:05:28 46 4
gpt4 key购买 nike

我正在尝试使用 xml2js 构建 XML Node 。当我添加包含在 cdata 中的 html 标签时,它会创建一个单独的 Node ,如下所示。如果我将 CDATA 包裹在“<>”内,则里面的值将变得未定义。基本上,我正在尝试创建 XML 文档,我可以从中获取 Node 值并使用 jQuery/Angular 在 HTML 文档中显示它。并且这些 Node 必须能够包含 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>
*/

最佳答案

您的第一次测试几乎正确。您实际上需要 CDATA 内容周围的 < > 符号。

这段代码:

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);
});

产生此输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<parent><![CDATA[Hey There! <span> Buddy.</span>]]></parent>

关于javascript - 如何在xml2js xml的CDATA中添加html标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30376964/

46 4 0