2010-08-21 30 views
0

我想在調用函數而不僅僅是字符串時在SOAP中返回以下XML。有許多不同的函數會返回這種格式的xml,有沒有一種方法可以定義函數返回的內容?喜歡製作我自己的數據類型?PHP:在SOAP函數調用中返回XML

<meta> 
    <supplier>Amazon.com</supplier> 
    <datetime>2010/08/21 14:32:40</datetime> 
</meta> 
<results> 
    <result> 
     <manufacturer>Intel</manufacturer> 
     <itemno>8236476234</itemno> 
     <prices> 
      <price> 
       <quantity>10</quantity> 
       <cost>$1.20</cost> 
      </price> 
      <price> 
       <quantity>100</quantity> 
       <cost>$0.80</cost> 
      </price> 
     </prices> 
    </result> 
    <result> ... </result> 
</results> 
+2

XML不是數據類型。這是一種文件格式。當你輸出一個XML文檔時,它只是一個字符串。你可以返回一個'SimpleXMLElement'對象,但這不是XML。這是一個複雜的數據結構(許多服務於相同目的的結構之一),它爲XML建模並提供操作接口。 – 2010-08-21 12:49:58

+0

爲什麼要從SOAP調用中返回XML?如果您使用所需結構設計類,PHP可以從SOAP調用中吐出對象。無需處理XML。 – 2016-05-04 02:36:40

回答

0

最好的辦法是把你的結果在array,然後將其轉換爲XML。下面是一個現成的腳本:

http://rssphp.net/examples/convert_array_to_xml/

它可以轉換幾乎所有類型的關聯數組的完整的XML。

+0

不能將XML轉換爲這樣的簡單關聯數組,因爲有效的XML可以具有元素屬性。操縱XML文檔的最佳方法是使用類似DOM或SAX的東西,這些都是可靠的解決方案。但是,如果您的目標僅僅是存儲/傳輸XML數據,那麼XML格式本身就是一個完美可行的標準化序列化格式。將其轉換爲其他數據結構沒有任何好處。 – 2010-08-21 23:57:24