如何使用属性的PHP肥皂服务器或是否有一个理解属性的库?

时间:2011-06-23 06:23:34

标签: php xml web-services soap

我试图在PHP中制作一个肥皂服务器并且效果很好,只有wsdl需要一个属性OptIn,如:

<EmailAdresses>
    <Email OptIn="true">email@domain.com</Email>
</EmailAdresses>

是否有适用于属性的好的php库/类? 这样Web服务就可以以某种方式返回一个数组或类似的东西,并将那些收入转换为带有属性的xml。

或如何使用php的标准soap服务器? 因为很难找到好的文档。

提前致谢

1 个答案:

答案 0 :(得分:2)

我使用过多种语言编写的SOAP服务,我从未见过使用XML属性的服务 - 它们总是只使用元素内部带有值的XML元素(字符串或其他元素) )。

我并不是说你不能使用属性,但似乎简单的名称 - 值对更适合大多数编程语言想要使用的数据结构(即简单变量或数组树)

但你的问题激起了我的好奇心,所以我已经为你做了一些挖掘。

正如你所说,PHP手册似乎并没有特别关注这个主题(这很不寻常 - 它通常是一个非常好的资源),但如果你真的想在SOAP XML中创建属性,我做了找一些可能有帮助的片段。

有几次出现的建议是在数据结构中使用下划线作为数组元素,然后这将成为元素的值,其他数组键将成为属性。像这样:

$mydata = array('EmailAdresses' => array(
                    'Email' => array(
                         '_' => 'email@domain.com',
                         'OptIn' => 'true')
                     )
                );

我发现的另一个建议是使用PHP的SimpleXML库将其创建为对象而不是数组,因为这显然允许创建XML属性。

抱歉,我现在没时间测试这些建议,但我希望有所帮助。