我正在尝试用新文本替换XML元素中的一些文本,我需要将其包装在CDATA中。
asset = request.responseXML;
asset.getElementByTagName("url").textContent = newUrl;
newUrl
需要包装在CDATA中,因为它可以包含特殊字符。这怎么可能?我尝试了以下但是它没有工作
asset.getElementByTagName("url").textContent = "<![CDATA[" + newUrl + "]]>";
答案 0 :(得分:0)
问题是您更改了剥离标记的textContent
。正确的语法是
var newUrl='/some/url?id=123&user=joe+dow';
var asset = request.responseXML; //xml Document
var urls = asset.getElementByTagName("url"); //HTMLCollection
urls[0].innerHTML= '<![CDATA[' + newUrl + ']]>';
console.log(asset.documentElement.outerHTML); //test it
答案 1 :(得分:0)
我认为您要做的是获取元素的innerHTML并使用textContent重置它。
var xmlString = "<root><foo /><bar /><url><a href='http://stackoverflow.com/'>foo</a></url></root>";
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var urlTag = xmlDoc.getElementsByTagName("url")[0];
urlTag.textContent = "<![CDATA[" + urlTag.innerHTML + "]]>";
console.log(urlTag.textContent);