如何替换 XML 中 CDATA 中的“&”以在 Java 脚本中解释(ECMAScript for XML)
How to replace "&" within CDATA in XML to interpret in Java Script (ECMAScript for XML)
var newstring = srchStr3.replace(/&/g, "&");
var srchStr3 = job.getJobInfo("JobData").replace("&", "&");
这些是我试过的一些无法解决问题的片段
我猜您在 XML 中嵌入了一些 JavaScript 代码,这些代码被不恰当地转义了。 (如果不是这种情况,请编辑您的问题。)
如果您的 JS 代码在 CDATA 中,则您不必在 JS 中执行此操作(我也不认为这实际上是可行的),例如:
<code>
<![CDATA[
function foo(a, b) {
return a && b;
}
]]>
</code>
当您处理 XML 时,请确保输出为文本。
以 XSL 为例:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/code">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
产生此输出:
$ xsltproc ~/Desktop/so.xsl ~/Desktop/so.xml
function foo(a, b) {
return a && b;
}
var newstring = srchStr3.replace(/&/g, "&");
var srchStr3 = job.getJobInfo("JobData").replace("&", "&");
这些是我试过的一些无法解决问题的片段
我猜您在 XML 中嵌入了一些 JavaScript 代码,这些代码被不恰当地转义了。 (如果不是这种情况,请编辑您的问题。)
如果您的 JS 代码在 CDATA 中,则您不必在 JS 中执行此操作(我也不认为这实际上是可行的),例如:
<code>
<![CDATA[
function foo(a, b) {
return a && b;
}
]]>
</code>
当您处理 XML 时,请确保输出为文本。 以 XSL 为例:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/code">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
产生此输出:
$ xsltproc ~/Desktop/so.xsl ~/Desktop/so.xml
function foo(a, b) {
return a && b;
}