javascript - 如何创建包含 CDATA 的 xml 元素

标签 javascript jquery xml

我需要从 javascript 创建一个 xml,其中一些 xml 元素标记将包含简单的字符串数据,而一些将包含 html 数据。为此我创建了一个函数

function element(child, childValue) {
var element = document.createElementNS(url, child);
var elementText = document.createTextNode(childValue);
element.appendChild(elementText);
return element;
}

通过这种方式调用 abobe 函数“function(widgetData, widget1)”。它在 xml 元素下面创建。

"<widgetData>widget1<widgetData>"

现在我需要创建包含 html 数据的 xml 标签,以便按照以下方式调用上述函数

function(widgetData, '<p>hello, world </p>')

它创建下面的 xml 元素

<widgetData>&lt;p&gt;Hello, world&lt;/p&gt;</widgetData>

我认为我们可以通过 CDATA 做到这一点

<widgetData><![CDATA[<p>hello, world </p>]]></widgetData>

但是不知道怎么做。

我试过了

var elementText = document.CreateCDataSection(childValue);

但它在 chrome 中给出错误“undefined function”。在 Firefox 中出现“Unsupported html document”错误。

最佳答案

您需要使用 .createCDATASection

以下应该有效:

function element(child, childValue) {
  var element = document.createElementNS(url, child);
  var section = document.createCDATASection(childValue);
  element.appendChild(section);
  return element;
}

请注意:

This will only work with XML, not HTML documents (as HTML documents do not support CDATA sections); attempting it on an HTML document will throw NOT_SUPPORTED_ERR.

关于javascript - 如何创建包含 CDATA 的 xml 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271824/

相关文章:

java - 如何使用 jsoup 文档将 child 添加到子节点

javascript - 元素内部光滑的旋转木马箭头

javascript - 如何在 Node.js 函数中应用 Promise

javascript - 在 react onclick 中循环遍历数组

javascript - 在函数中插入数组中的 JSON 数据

java - 如何使用 Java 使用现有的 dtd 生成数据示例的 xml 文件

javascript - $.fn.dataTableExt.aoFeatures.push 更改设置

Javascript 验证器插件 - 无法让它与表单一起工作

javascript - 您如何不引人注意地增强 jQuery Datepicker 类?

java - 使用元素路径查找 xml 中具有 namespace 的元素