2010-08-21 41 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