首页 > 解决方案 > 如何在 XML 中替换 CDATA 中的“&”以在 Java Script 中解释(ECMAScript for XML)

问题描述

var newstring = srchStr3.replace(/&/g, "&");


var srchStr3 = job.getJobInfo("JobData").replace("&", "&");

这些是我尝试过的一些片段网络,但无法解决问题

标签: javascriptxmlreplacecdata

解决方案


我猜你有一些嵌入在 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;
    }

推荐阅读