逃避"<"低于标志和">"大于登录Netsuite Javascript / Restlet

时间:2014-09-30 21:42:17

标签: javascript netsuite

我在Netsuite中有地址数据,如下所示,请注意in中包含“<”和“>”然后与需要转义的其他字符一起签名,成为XML文档中的有效字符。 12 ENTERPRISE RD UNIT 3& 4< 5> “6”'7'

在javascript(jetsuites版本的javascript)中,我尝试了以下“FOR”循环,数据最终以<和>转换成& LT;和& gt; (如下所示没有空格) 12 ENTERPRISE RD UNIT 3& 4& LT; 5& gt; “6”'7'

var EscapedField = '';
for (var pos = 0; pos < FieldToEscape.length; pos++) 
    {             
        switch (FieldToEscape.charAt(pos)) 
        {
        // escape "less than"   
        case "<":
            EscapedField = EscapedField + '&lt;'
            break;
        // escape "greater than" 
        case ">":
            EscapedField = EscapedField + '&gt;' 
            break;
        default:
            EscapedField = EscapedField + FieldToEscape.charAt(pos)
            break;
       }
    } 

根据egrubaugh360的建议,我在“Netsuite”/ Javascript中尝试了以下内容,

1)我的结果集包含一个包含(&amp;,&lt;,&gt;,“,”)的地址,(即&符号,小于,大于,双引号,单引号)

2)当您查看调试器中的值时,它们是有效的

3)在数据集上执行NS函数nlapiEscapeXML后,“&lt;”和“&gt;”被转换为&amp; LT;和&amp; gt;实际的转义字符

var ADDRLINE1 = nlapiEscapeXML(results [i] .getValue('shipaddress1'));

$ results [i] .getValue('shipaddress1')

  

12 ENTERPRISE RD UNIT 3&amp; 4&lt; 5> “6”'7'

$ ADDRLINE1

  

12 ENTERPRISE RD UNIT 3&amp; 4&amp; LT; 5&amp; GT; “6”'7'

4)在NetSuite / javascript中,我尝试了很多转义为“&lt;”和“&gt;”的排列,但它们最终都被转换为&lt;和&gt;

我打算尝试用字符串替换&lt;和处理文件的ETL工具(Jitterbit)中的&amp; gt,应该可以工作,但它很诡异。

5)感谢您的帮助

1 个答案:

答案 0 :(得分:2)

NetSuite API包含一个用于此目的的方法:nlapiEscapeXML我建议在NetSuite帮助中调查此方法。它接受单个String参数,并且(应该)返回相同的字符串,其中任何XML控制字符都适当地转义。