我需要从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中给出错误“未定义的函数”。在Firefox中出现“不支持的html文档”错误。
答案 0 :(得分:2)
您想要使用.createCDATASection
以下内容应该有效:
function element(child, childValue) {
var element = document.createElementNS(url, child);
var section = document.createCDATASection(childValue);
element.appendChild(section);
return element;
}
请注意:
这只适用于XML,而不适用于HTML文档(因为HTML文档不支持CDATA部分);在HTML文档上尝试它会抛出NOT_SUPPORTED_ERR。