我需要从 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><p>Hello, world</p></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/