簡體   English   中英

如何在xml2js xml的CDATA中添加html標簽?

[英]How to add html tags in CDATA of xml2js xml?

我正在嘗試使用 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>
*/

你的第一次測試幾乎是正確的。 您實際上需要 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>

它可以在沒有解析器的情況下制作。 _ 有助於處理標簽內的內部文本。

const xml2js = require('xml2js');

const builder = new xml2js.Builder({
    cdata: true
});

const test = "Hey There! <span> Buddy.</span>";

const xml = builder.buildObject({
   parent: {
     _: test,
   }
});

console.log(xml);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM