用JavaScript字符串转义CDATA

时间:2018-09-23 13:27:35

标签: javascript xml escaping cdata

我目前正在使用一个API,您可以在其中添加代码页(在本例中为JavaScript代码页)。该API需要XML形式的特定主体:

var data = `
            <qdbapi>
                <pagename>${pagename}</pagename>
                <pagetype>1</pagetype>
                <pagebody><![CDATA[${pagebody}]]></pagebody>
                <usertoken>${usertoken}</usertoken>
                ${apptokenString}
            </qdbapi>
        `;

上面的XML是必需的格式,它允许您命名文件(上面的“ pagename”)和声明JavaScript文件的内容(上面的“ pagebody”)。我遇到的问题是服务器正在为我试图发布到API的特定JavaScript文件返回解析错误。此JavaScript文件包含以下内容:

{return"<![CDATA["+o(e)+"]]>"},o=function(e){return e.replace("]]>","]]]]><![CDATA[>")},n.processors=c,n.defaults={.1:{explicitCharkey:!1,trim:!0,

如您所见,此特定JS文件中有“ CDATA”标签。这造成了一种情况,我的“ pagebody”变量从上方包含“ CDATA”标签-意味着我在“ pagebody”中嵌入了CDATA标签,这会导致解析错误。有什么办法可以避免这种情况,或者安全地对其进行修改,以免破坏我尝试导入的JS页面的功能?

0 个答案:

没有答案