2016-03-02 60 views
0

我正在使用Zoho API將潛在顧客插入到CRM中。當其中一個字段包含一個符號,在這種情況下,來自Zoho的反應是這樣的,除了Zoho API中XML符號的錯誤

一切正常:

<?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">[email protected]</FL> 
     <FL val="Company">Marks & Spencer</FL> 
    </row> 
</Leads> 

2/

<Leads> 
    <row no="1"> 
     <FL val="Lead Owner">[email protected]</FL> 
     <FL val="Company">Marks &amp; Spencer</FL> 
    </row> 
</Leads> 

3/

<Leads> 
    <row no="1"> 
     <FL val="Lead Owner">[email protected]</FL> 
     <FL val="Company">Marks &#038; Spencer</FL> 
    </row> 
</Leads> 

4/

<Leads> 
    <row no="1"> 
     <FL val="Lead Owner">[email protected]</FL> 
     <FL val="Company"><![CDATA[Marks &amp; Spencer]]></FL> 
    </row> 
</Leads> 

我甚至由%26更換符號在這個Zoho forum thread但沒有運氣的建議進行測試。

什麼是正確的格式來編碼Zoho查詢的&符號?

+0

雖然有點荒唐,但你可以試試& amp; ?可能存在雙重渲染問題。 –

+1

謝謝@AndrásHummer!我終於找到了解決這個問題的辦法(見下文) –

回答

1

終於找到了一個解決方案:包含特殊字符的字符串必須包含在CDATA部分那些特殊字符必須percent encoded

因此,對於上面的例子,這給:

<Leads> 
    <row no="1"> 
     <FL val="Lead Owner">[email protected]</FL> 
     <FL val="Company"><![CDATA[Marks %26 Spencer]]></FL> 
    </row> 
</Leads> 

注意,值Marks%20%26%20Spencer也是對API確定。

+1

太棒了!不要忘記將它標記爲解決方案! –

+0

這不再起作用,或者至少不一致。我用4個符號對數據進行了測試,其餘的消息從第二CDATA中刪除。 – juminoz