在Zoho API中使用XML中的&符号出错

时间:2016-03-02 09:01:00

标签: xml zoho

我使用Zoho API将潜在客户插入CRM。

一切正常,除非其中一个字段包含&符号,在这种情况下,Zoho的响应是:

<?xml version="1.0" encoding="UTF-8" ?>
<response uri="/crm/private/xml/Leads/insertRecords">
  <error>
    <code>4835</code>
    <message>Unable to parse XML data</message>
  </error>
</response>

我尝试了以下有效负载但没有取得任何成功:

1 /

<Leads>
    <row no="1">
        <FL val="Lead Owner">me@example.com</FL>
        <FL val="Company">Marks & Spencer</FL>
    </row>
</Leads>

2 /

<Leads>
    <row no="1">
        <FL val="Lead Owner">me@example.com</FL>
        <FL val="Company">Marks &amp; Spencer</FL>
    </row>
</Leads>

第3 /

<Leads>
    <row no="1">
        <FL val="Lead Owner">me@example.com</FL>
        <FL val="Company">Marks &#038; Spencer</FL>
    </row>
</Leads>

4 /

<Leads>
    <row no="1">
        <FL val="Lead Owner">me@example.com</FL>
        <FL val="Company"><![CDATA[Marks &amp; Spencer]]></FL>
    </row>
</Leads>

我甚至按照此Zoho forum thread的建议,按%26替换&符号进行了测试,但没有运气。

为Zoho查询编码&符号的正确格式是什么?

1 个答案:

答案 0 :(得分:2)

最后找到了一个解决方案:包含特殊字符的字符串必须包含在CDATA部分 AND 中,这些特殊字符必须为percent encoded

因此,对于上面的例子,这给出了:

<Leads>
    <row no="1">
        <FL val="Lead Owner">me@example.com</FL>
        <FL val="Company"><![CDATA[Marks %26 Spencer]]></FL>
    </row>
</Leads>

请注意,值Marks%20%26%20Spencer也适用于API。