PHP:在SOAP函数调用中返回XML

PHP:在SOAP函数调用中返回XML,php,xml,arrays,soap,Php,Xml,Arrays,Soap,我想在调用函数而不仅仅是字符串时在SOAP中返回以下XML。有许多不同的函数将以这种方式返回xml格式,有没有一种方法可以定义函数返回的内容?像制作我自己的数据类型 <meta> <supplier>Amazon.com</supplier> <datetime>2010/08/21 14:32:40</datetime> </meta> <results> <result>

我想在调用函数而不仅仅是字符串时在SOAP中返回以下XML。有许多不同的函数将以这种方式返回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>

最好的方法是将结果放入数组中,然后将其转换为XML。下面是一个现成的脚本:


它将几乎任何类型的关联数组转换为完整格式的XML。

XML不是数据类型。这是一种文档格式。输出XML文档时,它只是一个字符串。可以返回SimpleXMLElement对象,但这不是XML。这是一个复杂的数据结构,许多数据结构中有一个与XML建模和提供操作接口的目的相同?如果使用所需的结构设计类,PHP可以从SOAP调用中吐出对象。不需要处理XML。XML不能转换成那样的简单关联数组,因为有效的XML可以具有元素属性。操作XML文档的最佳方法是使用DOM或SAX之类的东西,它们是经过验证的真正解决方案。但是,如果您的目标只是存储/传输XML数据,那么XML格式本身已经是一种完全可行的标准化序列化格式。将其转换为其他数据结构没有任何好处。