“实体名称必须紧跟'&'在实体参考中。“

时间:2015-12-17 20:47:11

标签: javascript xml pdf special-characters netsuite

我正在尝试通过我在netusite中制作的自定义套件创建一个pdf。我正在使用API​​“nlapiXMLToPDF”来创建pdf。当我尝试从Netsuite(使用javascript)获取包含&符号(&)的值,并尝试创建pdf时,我收到错误

  

实体名称必须紧跟'&'在实体参考中。

strName += "<div class=\"" + divs[divVal] + "\">";
strName += "<table class = \"gentable\" style=\"width: 25%; margin-top:20px;margin-bottom: 20px;\"><tr><td class=\"addressheader\">Shipping Address</td></tr>";
strName += "<tr>"; 
strName += "<td class=\"address\">"  + Address + "</td>";
strName += "</tr>";
strName += "<tr>";
strName += "<td class=\"addressheader\">Phone</td>";
strName += "</tr>";
strName += "<tr>";
strName += "<td>" + Phone + "</td>";
strName += "</tr></table>";

地址和电话正在从netsuite字段中提取值。其中一些字段包含“&amp;”。当我尝试更换“&amp;”时与

&amp;

使用

之类的东西
Address.replace("&", "&amp;");

我不再收到错误,pdf生成正常,除非现在显示“&amp; amp;”在pdf表格上。如果我不使用替换方法,我会收到错误。

任何帮助将不胜感激。提前谢谢。

固定

用netsuite API封闭我的值nlapiEscapeXML()解决了我的问题。我不知道我似乎忽略了这一点。

1 个答案:

答案 0 :(得分:0)

尝试单独转义地址而不是整个XML字符串。当你更换&#34;&amp;&#34;在地址中它已经是正确的key=value所以当你生成它时它将显示为&#34; Barnes&amp;贵金属&#34;

但你所做的就是替换&#34;&amp;&#34;在将其作为"Barnes &amp; Noble"的地址中,然后使用nlapiEscapeXML,它将为您提供"Barnes &amp; Noble",这就是您获得"Barnes &amp; amp; Noble"的原因