2012-06-07 41 views
0

長時間的聽衆,第一次來電。爲什麼我所有的XML都被轉義了?

這裏是我得到了什麼事......

創建一個PHP Web服務,以發送簡單的數據類型,如字符串,整數... 沒問題返回字符串或者int沒有問題。

現在我想用XML返回數據。

因此,我創建一個DOMDocument,並填寫了所有的數據...

然後我回到它的服務。

在我的客戶端,當我將對象作爲XML文檔加載時,出現一個關於我的根沒有正確格式化的錯誤。

我看着我的調試和所有的「特殊」字符已經逃脫。

我做了一個破解,用>替換了「<」等等。

然後我可以加載結果。

這看起來不對,我應該能夠正確格式化返回XML。

所以我猜測它是在我如何定義的XML對象?

有人可以發佈定義xml對象返回的PHP示例嗎?

我查找了幾天,找不到一個從MySql中選擇數據將其轉換爲XML然後將XML返回給客戶端的簡單示例。

+0

'然後我回到它的service',什麼_exactly_你在這個階段做什麼? – Shad

回答

1
I did a hack and replaced "<" with > and so on. 

是毫無黑客更換.XML有害的字符,它的規則。 閱讀here關於這些字符。 相反,你可以使用此代碼:

function replace_characters_for_xml(&$str) 
{ 
    $str = str_replace("&","&amp;",$str); 
    $str = str_replace(">","&gt;",$str); 
    $str = str_replace("<","&lt;",$str); 
    $str = str_replace("'","&apos;",$str); 
    $str = str_replace('"',"&quot;",$str); 
} 
... 
replace_characters_for_xml($string); 
+0

這就是我在客戶端所做的。似乎很奇怪。 – user1441213

0

因此,我創建一個DOMDocument,並填寫了所有的數據...

我懷疑,不管你在這裏做的做了錯事。

+0

使用DomDocument在創建根目錄方面相當不錯。我在xml結果中得到了這個地方。我在xml中返回xml時會發生一些關於這種情況的信息。這就是爲什麼我認爲它處理的是如何迴應服務中的xml對象。 – user1441213

相關問題