我正在尝试通过我在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;”时与
&
使用
之类的东西Address.replace("&", "&");
我不再收到错误,pdf生成正常,除非现在显示“&amp; amp;”在pdf表格上。如果我不使用替换方法,我会收到错误。
任何帮助将不胜感激。提前谢谢。
固定
用netsuite API封闭我的值nlapiEscapeXML()解决了我的问题。我不知道我似乎忽略了这一点。
答案 0 :(得分:0)
尝试单独转义地址而不是整个XML字符串。当你更换&#34;&amp;&#34;在地址中它已经是正确的key=value
所以当你生成它时它将显示为&#34; Barnes&amp;贵金属&#34;
但你所做的就是替换&#34;&amp;&#34;在将其作为"Barnes & Noble"
的地址中,然后使用nlapiEscapeXML,它将为您提供"Barnes & Noble"
,这就是您获得"Barnes & amp; Noble"
的原因