当前位置: 首页 > 知识库问答 >
问题:

如何在xml2js xml的CDATA中添加html标记?

平嘉熙
2023-03-14

我试图用xml2js构建一个XML节点。当我添加包装在cdata中的html标签时,它会创建一个单独的节点,如下所示。如果我把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)
});
//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>
*/

共有2个答案

喻高寒
2023-03-14

它可以在没有解析器的情况下制作。_有助于处理标签内的内部文本。

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);
欧阳博文
2023-03-14

你的第一次测试几乎是正确的。你真的需要

此代码:

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>
 类似资料:
  • 我的节点设置如下: 我想添加CDATA而不删除标记f.e.: 我找到的每一个解决方案要么是创建一个新的节点,这会破坏我的结构,要么是丢弃标记。 我的代码如下所示:

  • 本文向大家介绍如何在jQuery中的特定HTML标签中添加属性?,包括了如何在jQuery中的特定HTML标签中添加属性?的使用技巧和注意事项,需要的朋友参考一下 使用该方法将属性添加到jQuery中的特定HTML标记中。 示例 您可以尝试运行以下代码,以了解如何将属性添加到特定的HTML标签:

  • 我有一个带有文本元素的XML,它可以包括标记的文本,并且取决于元素属性值,我知道内容是CDATA封装的还是XHTML。 因为我不能在文本元素中拥有/创建任何子元素,所以如果我得到XHTML,我将需要封装。 这只是我需要在XSLT中转换的许多元素中的一个 一个简短的xml示例 我终于试过了,它确实达到了目的。只是html标记没有被保留。 这将产生以下结果(请注意 标记在第一个文本中消失) 我还尝试使

  • 问题内容: JavaScript标记和HTML中CDATA的用途是什么? 问题答案: XML文档中的所有文本都将由解析器解析。 但是解析器将忽略CDATA节中的文本。 CDATA-(未分析)字符数据 术语CDATA用于XML解析器不应该解析的文本数据。 XML元素中的字符“ <”和“&”是非法的。 “ <”将产生错误,因为解析器将其解释为新元素的开始。 “&”将产生错误,因为解析器将其解释为字符实

  • 我试图将一些HTML文件添加到我正在开发的spring项目中。最初,该项目可以很好地处理JSP文件。 下面是我所遵循的文件夹结构:/WEB-INF/views/jsp/hello.jsp Spring web配置如下: 我尝试用HTML替换它,如下所示: 请求映射如下所示: 这是日志条目: 2016年12月15日11:54:57.408警告[http-apr-9999-exec-2]org.spr

  • 我试图添加一个属性到一个节点,它是CDATA的一部分。我的XML是 结果应该是xml 文档节点中的id属性应作为属性添加到CDATA中的节点。 我能够以字段[@name='CDATA']的形式获取CDATA值,但我不确定如何将文档的属性添加到CDATA中。。 谁能给我建议一下怎么做,或者给我指出正确的方向?